Clio Api v4 Documentation v4
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Developer Support and Feedback
As we are all aware, the importance of API-level development is paramount in the cloud-based software industry. Clio’s open API allows you to create valuable add-ons for your clients, and in turn, construct profitable revenue streams for your business.
Please direct any inquiries to the appropriate channel:
For technical inquiries: api@clio.com
For business and partnership inquiries: api.partnerships@clio.com
A community driven Clio Developers Stack Overflow Group also exists where you can connect and ask questions from other Clio API users.
We look forward to seeing your creations and creating successful relationships!
Getting Started
The Clio API gives you and your approved developers secure access to the data in your Clio account. All Clio accounts, including free 7-day trial accounts, can be accessed using the documented Clio API. Learn how to make requests and receive data programmatically today (no need for lengthy signups or approvals).
- Start a 7-day free trial account using your development team’s email address & phone number at https://www.clio.com/getstarted
- Login, create test data in the account, and then navigate to the developer application page to add a client application and generate an App Key & App Secret (details in the OAuth 2 section).
- Use the App Key and App Secret to read & write data in your 7-day free trial account. Tools like Postman are an easy way to start testing.
When you are ready to build an app and integrate with Clio, start by upgrading your 7-day free trial account to an account that will not expire. Request an upgrade to a developer account by connecting with our partnerships team by providing the email used in your 7-day free trial in the intake form at https://www.clio.com/become-api-partner/
Please note that only accounts on a Boutique or Elite pricing plan can create apps or access applications not listed in the Clio Marketplace.
Authorization with OAuth 2.0
Create a Clio Application
- Login to your new Clio account at the login portal.
- Visit our developer portal.
- Click the
Addbutton to create a new application. Enter details and select the scope of your application here - these details will be shown to Clio users when they're asked to authorize your application. - Make note of the
keyand thesecret, as these will be used to authorize your application with Clio.
Obtaining Authorization
Clio's API is only exposed through OAuth 2.0. In order to access any of the methods exposed in the API, your application must obtain authorization from the user.
### Grant Type: Authorization Code
Your application needs to make a request asking for authorization by including the following parameters and values.
If you are building a desktop or mobile application, you may embed this request inside a WebView/WebBrowser control. As a desktop or mobile app does not have a web server to redirect to, your app may use
https://app.clio.com/oauth/approvalfor yourredirect_uri. This will place the code or error in both the URL and page title, which should be easily parsed out. Intercepting the request will vary from platform to platform. Here are some references to get you started:* .NET: WebBrowser event webbrowser.navigated. * OSX: webView:resource:didReceiveResponse:fromDataSource on the WebResourceLoadDelegate. * iOS: webView:shouldStartLoadWithRequest:navigationType on the UIWebViewDelegate. * Android: WebViewClient event onPageStarted (android.webkit.WebView, java.lang.String, android.graphics.Bitmap).
Parameters:
response_type: code client_id: application key from above redirect_uri: callback URL to redirect to after authorization state (optional): Can be used by your application to maintain state between the request and the callbackRequest:
http GET /oauth/authorize?response_type=code&client_id=fzaXZvrLWZX747wQQRNuASeVCBxaXpJaPMDi7F96&redirect_uri=http%3A%2F%2Fyourapp.com%2Fcallback&state=xyz HTTP/1.1 Host: app.clio.comGrant Approved:
If the user grants your application access, Clio will redirect their browser to the callback url with an authorization code and any supplied state parameters. This code is only valid for 10 minutes.
If you are building a desktop or mobile application, you will need to intercept the redirect to https://app.clio.com/oauth/approval inside your WebView/WebBrowser control and extract the code from the page's title. The title string will look like
Success code=5IzZeWL2OmZUxGOGO4WE.Approved Redirect:
http://yourapp.com/callback?code=s9jGYmL8E00ZyuJP3AEO&state=xyzGrant Declined:
If the user declines your application access, Clio will redirect their browser to the callback url with an
errorparameter value of "access_denied".If you are building a desktop or mobile application, you will need to intercept the redirect to
https://app.clio.com/oauth/approvalinside your WebView/WebBrowser control and extract the error from the page's title. The title string will look likeFailure error=access_denied.Declined Redirect:
http://yourapp.com/callback?error=access_denied&state=xyzYour application may now make a POST request for an access token to Clio's token endpoint with the provided token. For Clio to verify the grant request, you must include your application's key and secret as well as the
redirect_urifrom the code request. Parameters:Parameters:
client_id: application key from above client_secret: application secret from above grant_type: "authorization_code" code: Authorization code from the redirect above redirect_uri: Redirect URI used in the authorization request aboveRequest:
POST /oauth/token HTTP/1.1 Host: app.clio.com Content-Type: application/x-www-form-urlencoded client_id=fzaXZvrLWZX747wQQRNuASeVCBxaXpJaPMDi7F96&client_secret=xVp5wAX05g1oDjV5astg2KZIZ85NX31FKTPV876v&grant_type=authorization_code&code=s9jGYmL8E00ZyuJP3AEO&redirect_uri=http%3A%2F%2Fyourapp.com%2FcallbackResponse:
HTTP/1.1 200 OK Content-Type: application/json { "token_type":"bearer", "access_token":"WjR8HLdo847Z8kdfUtewJpCvkRX4JYLCIF2dUUul", "expires_in":604800, "refresh_token":"5A0Ddf2RSt75v1VQcCoTB9rImRydF9yXA0gGvx7e" }Your application should save these tokens for future requests to the API. You should include an Authorization header with a value of
Bearer access_token.See Oauth Refresh Tokens for more information on refresh tokens.
Example Authorized Request:
GET /api/v4/users/who_am_i HTTP/1.1 Host: app.clio.com Authorization: Bearer WjR8HLdo847Z8kdfUtewJpCvkRX4JYLCIF2dUUulExample Ruby code for obtaining authorization with the authorization code grant type:
require 'rubygems' require 'oauth2' client_key = 'Application key from https://app.clio.com/' client_secret = 'Application secret from https://app.clio.com/' client = OAuth2::Client.new(client_key, client_secret, :site => 'https://app.clio.com/') client.auth_code.authorize_url(:redirect_uri => 'http://yourapp.com/callback') # Redirect user or paste in the browser # => "https://app.clio.com/oauth/authorize?response_type=code&client_id=client_key&redirect_uri=http://yourapp.com/callback" # redirects to http://yourapp.com/callback?state=&code=secretcode # Use the code param below to get a token code = 'secretcode' token = client.auth_code.get_token(code, :redirect_uri => 'http://yourapp.com/callback') saved_token = token.token # => "WjR8HLdo847Z8kdfUtewJpCvkRX4JYLCIF2dUUul" saved_refresh_token = token.refresh_token # => "5A0Ddf2RSt75v1VQcCoTB9rImRydF9yXA0gGvx7e" # Save these values for future requestsExample Ruby request:
require 'rubygems' require 'oauth2' # Token saved from above saved_token = "WjR8HLdo847Z8kdfUtewJpCvkRX4JYLCIF2dUUul" client_key = 'Application key from https://app.clio.com/' client_secret = 'Application secret from https://app.clio.com/' client = OAuth2::Client.new(client_key, client_secret, :site => 'https://app.clio.com/') token = OAuth2::AccessToken.new(client, saved_token) response = token.get('/api/v4/users/who_am_i', params: {fields: 'id,name,last_name,first_name,email,enabled,account_owner'}) response.class.name # => OAuth2::Response response.body # => "{\"data\":{\"id\":1,\"name\":\"Demo User\",\"first_name\":\"Demo\",\"last_name\":\"User\",\"email\":\"demo@clio.com\",\"enabled\":true,\"account_owner\":true}}"Deauthorization
Deauthorization can happen in one of two ways: the user has revoked access to your application, or your application has requested to be deauthorized. When a user revokes access to your application, ALL access tokens will be revoked. If your application requests to be deauthorized, only the supplied access token will be revoked.
In both cases Clio will make a POST request to your application's deauthorization callback URL (if present). The callback will include a JSON object containing the client_id, user_id and the access_token (set to "all" if user revoked).
Deauthorization Callback Request:
POST /deauthorization_callback HTTP/1.1
Host: yourapp.com
Content-Type: application/json
{
"client_id": "fzaXZvrLWZX747wQQRNuASeVCBxaXpJaPMDi7F96",
"user_id": 2332,
"access_token": "all"
}
For your application to deauthorize itself, you need to make an authorized POST request to /oauth/deauthorize. Clio's response should be a simple 200 status code.
Parameters:
token: token to be revoked
Request:
POST /oauth/deauthorize HTTP/1.1
Host: app.clio.com
Authorization: Bearer WjR8HLdo847Z8kdfUtewJpCvkRX4JYLCIF2dUUul
token=WjR8HLdo847Z8kdfUtewJpCvkRX4JYLCIF2dUUul
Response:
HTTP/1.1 200 OK
Oauth Refresh Tokens
For background on refresh tokens, see Understanding Refresh Tokens.
When the user grants access to your application, you receive both an access token and a refresh token. The access token has a limited lifespan and will eventually expire. Once it expires, you can use your refresh token to refresh your access.
Checking Expiry:
Your access token has a limited lifespan. When you initially receive your access token, you also get back the token's lifespan, in seconds. Most Oauth libraries support checking to see if your token has expired.
Example Ruby code:
# Token obtained above
token.expired?
# => false
token.expires_in
# => 604770
Refreshing Access:
If your access token has expired, you can refresh your access. You use
your refresh token with the grant_type: "refresh_token".
Parameters:
client_id: application key from above
client_secret: application secret from above
grant_type: "refresh_token"
refresh_token: Refresh token code from above
Request:
POST /oauth/token HTTP/1.1
Host: app.clio.com
Content-Type: application/x-www-form-urlencoded
client_id=fzaXZvrLWZX747wQQRNuASeVCBxaXpJaPMDi7F96&client_secret=xVp5wAX05g1oDjV5astg2KZIZ85NX31FKTPV876v&grant_type=refresh_token&refresh_token=5A0Ddf2RSt75v1VQcCoTB9rImRydF9yXA0gGvx7e
Response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"token_type":"bearer",
"access_token":"rFlGXgfqh1e8yBIGGh4jSMaJAuOZb4Bo4VKEG6wK",
"expires_in":604800,
"refresh_token":"5A0Ddf2RSt75v1VQcCoTB9rImRydF9yXA0gGvx7e"
}
Example Ruby request:
require 'rubygems'
require 'oauth2'
# Obtain token as described above.
if token.expired?
token = token.refresh! # Uses token.refresh_token value
# Save the new access token for future requests.
end
Secure Your Refresh Token:
Unlike the access token, your refresh token does not expire. You must ensure these tokens are securely stored and encrypted.
Oauth Scopes
For background on Oauth scopes, see Oauth.com's article.
If you are writing an application which deals with tasks, you probably do not need access to bills or matters. Oauth scopes are a way to limit your access to the user’s account.
When a user is prompted to authorize your application, they are presented with a list of Oauth scopes you are requesting, along with information on each scope. If they accept this list of scopes, they grant access. From then on, your application is restricted to only those scopes, for that user.
You can select your list of scopes when you create your client application. For example, perhaps you need read access to contacts, read/write access to matters, and read access to users. Remember, the users will see each scope you are requesting, so you must choose the smallest set necessary for your application to function properly. The full list of available scopes is visible when you create a new client application.
You may change your set of scopes at any time, but once a user has authorized your application, their scopes are fixed. If you subsequently need additional access, users will have to reauthorize your application.
Read access allows you to read information for that endpoint. For example, read access to matters allows you to get a list of matters, or get detailed information about a specific matter. It also allows you access to related endpoints. Our documentation shows that matters, relationships, notes, practice areas, and log entries are all related. Read access to matters allows you read access to any of these related endpoints.
Write access allows you to create, update, or destroy information for that endpoint. For example, write access to matters allows you to create a new matter, update an existing matter, or destroy a matter. Similarly, you get write access to all related endpoints.
If you try to access an endpoint without the necessary scopes, you receive error code 403 - Forbidden.
Response:
HTTP/1.1 403 Forbidden
{
"error":{
"type":"ForbiddenError",
"message":"User is forbidden from taking that action"
}
}
Be careful with nested fields! If you have read
access to matters and read access to contacts, you can request
information about a matter and its associated client, as follows:
'id,display_number,client{id,name}'
Request:
GET /api/v4/matters/1?fields=id,display_number,client{id,name} HTTP/1.1
Host: yourapp.com
Content-Type: application/json
{
"data": {
"id":1,
"display_number":"00001-Marquardt-Walter",
"client":{
"id":1,
"name":"Marquardt-Walter"
}
}
}
If on the other hand, you have read access to matters but do not
have read access to contacts, we will only display the
client's id; all other information about the contact will be
redacted.
Request:
GET /api/v4/matters/1?fields=id,display_number,client{id,name} HTTP/1.1
Host: yourapp.com
Content-Type: application/json
{
"data": {
"id":1,
"display_number":"00001-Marquardt-Walter",
"client":{
"id":1,
"redacted":true
}
}
}
Here is some Ruby code demonstrating these concepts.
require 'rubygems'
require 'oauth2'
client_key = 'SUNLAvcBLRpm58ifRJONr9pNyTznoUcvLCwA451y' # Your own value here
client_secret = '0TkElPVV7ZBBPoY9jC3aZ6ucfxbORRcSqLewLnMG' # And here
client = OAuth2::Client.new(client_key, client_secret, :site => 'https://app.clio.com/')
token = OAuth2::AccessToken.new(client, saved_token) # saved_token is stored in your database
# Now, let's assume you have read access to users, matters, and contacts.
# This works, because you have read access to users.
puts token.get('/api/v4/users/who_am_i').body
# => {"data":{"etag":"\"93027c76885d9b2da02cf90713aedc78\"","id":1,"name":"Demo User"}}
# This works, because you have read access to matters.
puts token.get('/api/v4/matters').body
# => {"data":[{"id":1,"etag":"\"beea69c32b8f86d3afb2ef8808a9ba00\"","display_number":"00001-Luettgen, Marks and Wilkinson"},{"id":2,"etag":"\"fb6d3a8bc51f7c34ed198222201f2eae\"","display_number":"00002-Cummings and Sons"},{"id":3,"etag":"\"7459639645818d811a6b77a76d26934d\"","display_number":"00003-Rogahn, Fritsch and Homenick"}],"meta":{"paging":{},"records":3}}
# This works, because you have read access to matters and to contacts.
puts token.get('/api/v4/matters/1', params: {fields: 'id,etag,display_number,description,client{id,first_name,last_name,name}'}).body
# => {"data":{"id":1,"etag":"\"beea69c32b8f86d3afb2ef8808a9ba00\"","display_number":"00001-Luettgen, Marks and Wilkinson","description":"In eveniet exercitationem et.","client":{"id":1,"name":"Luettgen, Marks and Wilkinson"}}}
# Now, let's assume you have read access to matters, but no access to contacts or users.
puts token.get('/api/v4/contacts').body
# => {"error":{"type":"ForbiddenError","message":"User is forbidden from taking that action"}}
# The response code is 403 - Forbidden
# This doesn't work either; you don't have read access to users.
puts token.get('/api/v4/users/who_am_i').body
# => {"error":{"type":"ForbiddenError","message":"User is forbidden from taking that action"}}
# Let's try to get information about contacts, via matters:
puts token.get('/api/v4/matters/1', params: {fields: 'id,etag,display_number,description,client{id,first_name,last_name,name}'}).body
# => {"data":{"id":1,"etag":"\"beea69c32b8f86d3afb2ef8808a9ba00\"","display_number":"00001-Luettgen, Marks and Wilkinson","description":"In eveniet exercitationem et.","client":{"id":1,"redacted":true}}}
# Note that all information about the client other than the id is redacted.
Permissions
Some objects in Clio are protected via permissions. This could be due to insufficient
Oauth scope permissions, or from the role permissions inside Clio.
If associated data is protected in this fashion, we will remove requested fields, and add a
redacted boolean field onto the object.
This field may be requested just like any others, but it will automatically be added
if we have redacted the object.
For example, if the user does not have the Billing permission, or if the user has not granted
the Clio application the ability to read bills, you may have a response similar to:
```http
GET /api/v4/activities/15?fields=id,bills{id,number} HTTP/1.1
Host: yourapp.com
Content-Type: application/json
{ "data": { "id": 15, "bill": { "id": 527, "redacted": true} } } ```
Matters
If the protected data is a matter, the response will behave as stated above, with the exception that the
matter's display_number will be included in the response if requested. For example, consider a task with
an associated matter that the user does not have permission to access:
```http
GET /api/v4/tasks/16?fields=id,matter{id,display_number,client} HTTP/1.1
Host: yourapp.com
Content-Type: application/json
{ "data": { "id": 16, "matter": { "id": 1, "display_number": "00001-Luettgen, Marks and Wilkinson", "redacted": true} } } ```
Activities
In version 4.0.5, if the activity is of type TimeEntry and the user has a rate visibility of
limited or none, the response will show everything that is requested, with the exception that
the price and total may be redacted:
```http
GET /api/v4/activities?fields=id,quantity,price,total HTTP/1.1
Host: yourapp.com
Content-Type: application/json
{
"data": {
"id": 16, "quantity": 2197, "redacted": true
}
}
``
If the user’s rate visibility is set tolimited, both thepriceandtotalof the time entries that other users have created are removed from the response and the attributeredactedis set astrueto indicate the hidden information.
If the user’s rate visibility is set tonone, both thepriceandtotalof all time entries are removed from the response and the attributeredactedis set astrue` to indicate the hidden information.
Fields
By default only the fields id and etag are returned as part of the response. Each request may specify which fields it wants to receive as a comma separated list on the fields parameter. For example: fields=id,etag. Nested resources will return the resource\'s default fields. To change this behavior, other fields from nested resources can be requested by placing a comma separated list inside {, }. For example: fields=id,etag,nested_resource{id,name}. If a field is invalid, a 400 Bad Request will be returned.
Rate Limiting
Requests to API v4 are rate-limited by OAuth token. This means that after a certain number of requests in a given time period, the API will return a 429 Too Many Requests response. Regular responses will include two headers: X-RateLimit-Limit (the number of allowed requests in a time period) and X-RateLimit-Remaining (the number of remaining requests in the time period)
If the limit is exceeded a Retry-After header will be supplied with the number of seconds to wait until the request should be tried again.
Certain endpoints have custom rate limits. See specific endpoint documentation for further information.
Paging
Index actions are limited to 200 resources unless otherwise specified. A limit parameter may be supplied to lower this limit. An offset parameter may be supplied to skip records. Metadata about paging is returned in the index actions:
{
data: { ... },
meta: { paging: { previous: '', next: '' } },
}
The previous and next fields will be URLs for the previous and next page of data, respectively. If there is no previous or next page, the field will be missing.
There is a limit to the number of resources that can be requested through pagination so if you are expecting a large data set, we recommend using Bulk Actions. If you attempt to retrieve a page over the limit, you will receive a 422 ArgumentError.
ETags
"For single resources we return ETag and Last-Modified HTTP headers. etag is also a field on most resources that can be returned via index actions. If you supply an If-None-Match or If-Modified-Since header with the values of the resource's ETag or Last-Modified field, respectively, the API will return a 304 Not Modified response."
Minor Versions
API v4 may have multiple minor versions. Versions are of the form '4.X.Y'. Optionally a X-API-VERSION header may be supplied to keep specific behavior. If this header is omitted, it will default to the latest version. An X-API-VERSION will be included in all successful responses with the version that is being used. If the header is present but invalid, it will return a 410 GONE response. If the header is present and valid, but it is no longer supported, it will return a 410 GONE response.
- 4.0.4
Update quantity field to return values in seconds rather than hours for Activities
This is the current version
Base URLs:
Email: Support
Activities
Activities (Time Entries and Expense Entries) track work done at a firm. Activities are recorded in Clio and then posted on bills to clients.
Time Entries can be either be hourly-billable or flat-rate. An hourly-billable Time Entry is valued at the billing rate multiplied by the time entered. Examples could be a phone call, or a research session. A flat-rate Time Entry has a set value. Examples could be a visa application, or a contract review.
Expenses are reimbursable costs the firm pays on behalf of a client (for example, postage, copy fees, etc.).
Activity#index
Code samples
# You can also use wget
curl -X GET /api/v4/activities.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/activities.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/activities.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/activities.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/activities.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/activities.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/activities.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /activities.json
Return the data for all Activities
Outlines the parameters, optional and required, used when requesting the data for all Activities
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| activity_description_id | query | integer(int32) | false | The unique identifier for a single ActivityDescription. Use the keyword null to match those without a Activity. The list will be filtered to include only the Activity records with the matching property. |
| communication_id | query | integer(int32) | false | The unique identifier for a single Communication. Use the keyword null to match those without a Activity. The list will be filtered to include only the Activity records with the matching property. |
| created_since | query | string(date-time) | false | Filter Activity records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| end_date | query | string(date-time) | false | Filter Activity records to those whose date is on or before the date provided (Expects an ISO-8601 date). |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| flat_rate | query | boolean | false | Filter Activity TimeEntry records to those that have a flat rate, or not. |
| ids[] | query | integer(int32) | false | Filter Activity records to those having the specified unique identifiers |
| limit | query | integer(int32) | false | A limit on the number of Activity records to be returned. Limit can range between 1 and 200. Default: 200. |
| matter_id | query | integer(int32) | false | The unique identifier for a single Matter. Use the keyword null to match those without a Activity. The list will be filtered to include only the Activity records with the matching property. |
| order | query | string | false | Orders the Activity records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| query | query | string | false | Wildcard search for note matching a given string. |
| start_date | query | string(date-time) | false | Filter Activity records to those whose date is on or after the date provided (Expects an ISO-8601 date). |
| status | query | string | false | Filter Activity records to those that are billed or unbilled. |
| type | query | string | false | Filter Activity records to those of a specific type. |
| updated_since | query | string(date-time) | false | Filter Activity records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
| user_id | query | integer(int32) | false | The unique identifier for a single User. Use the keyword null to match those without a Activity. The list will be filtered to include only the Activity records with the matching property. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | id(asc) |
| order | id(desc) |
| order | display_number(asc) |
| order | display_number(desc) |
| order | user.name(asc) |
| order | user.name(desc) |
| order | price(asc) |
| order | price(desc) |
| order | total(asc) |
| order | total(desc) |
| order | date(asc) |
| order | date(desc) |
| order | note(asc) |
| order | note(desc) |
| order | updated_at(asc) |
| order | updated_at(desc) |
| status | billed |
| status | unbilled |
| type | TimeEntry |
| type | ExpenseEntry |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ActivityList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Activity#create
Code samples
# You can also use wget
curl -X POST /api/v4/activities.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/activities.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/activities.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"activity_description": {
"id": 0,
"utbms_task_id": 0,
"utbms_activity_id": 0
},
"communication": {
"id": 0
},
"date": "2018-03-22",
"matter": {
"id": 0
},
"note": "string",
"price": 0,
"quantity": 0,
"start_timer": true,
"type": "TimeEntry",
"user": {
"id": 0
},
"utbms_expense": {
"id": 0
}
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/activities.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/activities.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/activities.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/activities.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /activities.json
Create a new Activity
Outlines the parameters and data fields used when creating a new Activity
Body parameter
{
"data": {
"activity_description": {
"id": 0,
"utbms_task_id": 0,
"utbms_activity_id": 0
},
"communication": {
"id": 0
},
"date": "2018-03-22",
"matter": {
"id": 0
},
"note": "string",
"price": 0,
"quantity": 0,
"start_timer": true,
"type": "TimeEntry",
"user": {
"id": 0
},
"utbms_expense": {
"id": 0
}
}
}
data:
activity_description:
id: 0
utbms_task_id: 0
utbms_activity_id: 0
communication:
id: 0
date: '2018-03-22'
matter:
id: 0
note: string
price: 0
quantity: 0
start_timer: true
type: TimeEntry
user:
id: 0
utbms_expense:
id: 0
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» activity_description | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single ActivityDescription associated with the Activity. The keyword null is not valid for this field. |
| »»» utbms_task_id | body | integer(int32) | false | The unique identifier for a single UtbmsTask associated with the Activity. The keyword null is not valid for this field. |
| »»» utbms_activity_id | body | integer(int32) | false | The unique identifier for a single UtbmsActivity associated with the Activity. The keyword null is not valid for this field. |
| »» communication | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Communication associated with the Activity. The keyword null is not valid for this field. |
| »» date | body | string(date) | true | The date the Activity was performed. (Expects an ISO-8601 date). |
| »» matter | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Matter associated with the Activity. The keyword null is not valid for this field. |
| »» note | body | string | false | A custom note to describe what the Activity is for. |
| »» price | body | number(double) | false | For an ExpenseEntry, it is the expense amount. |
| »» quantity | body | number(double) | false | The field is applicable to time entries only. |
| »» start_timer | body | boolean | false | Whether or not a timer should be started for this Activity. Only valid for non-FlatRate, non-billed TimeEntries. |
| »» type | body | string | true | The type the Activity. |
| »» user | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single User associated with the Activity. |
| »» utbms_expense | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single UtbmsExpense associated with the Activity. The keyword null is not valid for this field. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
»» price: For an ExpenseEntry, it is the expense amount.
For a TimeEntry, it is the hourly or flat amount. When updating a TimeEntry, if the price is not given or the user does not have the permission to view the rate, and its activity description, matter and/or user is changed, the price is reset according to the rate defined for the activity description, matter, client or user.
Support Link for Rates Hierarchy
Support Link for Billing Rate Visibility
»» quantity: The field is applicable to time entries only.
Version <= 4.0.3: The number of hours the Activity took.
Latest version: The number of seconds the Activity took.
»»» id: The unique identifier for a single User associated with the Activity.
Use the keyword null to specify no association.
On creation, if no user is specified, it will default to the current user.
If a TimeEntry is created by a Clio Connect user, the field is not editable.
Enumerated Values
| Parameter | Value |
|---|---|
| »» type | TimeEntry |
| »» type | ExpenseEntry |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | ActivityShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Activity#show
Code samples
# You can also use wget
curl -X GET /api/v4/activities/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/activities/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/activities/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/activities/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/activities/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/activities/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/activities/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /activities/{id}.json
Return the data for a single Activity
Outlines the parameters, optional and required, used when requesting the data for a single Activity
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the Activity. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ActivityShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Activity#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/activities/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/activities/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/activities/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"activity_description": {
"id": 0,
"utbms_task_id": 0,
"utbms_activity_id": 0
},
"communication": {
"id": 0
},
"date": "2018-03-22",
"matter": {
"id": 0
},
"note": "string",
"price": 0,
"quantity": 0,
"start_timer": true,
"user": {
"id": 0
},
"utbms_expense": {
"id": 0
}
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/activities/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/activities/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/activities/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/activities/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /activities/{id}.json
Update a single Activity
Outlines the parameters and data fields used when updating a single Activity
Body parameter
{
"data": {
"activity_description": {
"id": 0,
"utbms_task_id": 0,
"utbms_activity_id": 0
},
"communication": {
"id": 0
},
"date": "2018-03-22",
"matter": {
"id": 0
},
"note": "string",
"price": 0,
"quantity": 0,
"start_timer": true,
"user": {
"id": 0
},
"utbms_expense": {
"id": 0
}
}
}
data:
activity_description:
id: 0
utbms_task_id: 0
utbms_activity_id: 0
communication:
id: 0
date: '2018-03-22'
matter:
id: 0
note: string
price: 0
quantity: 0
start_timer: true
user:
id: 0
utbms_expense:
id: 0
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the Activity. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» activity_description | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single ActivityDescription associated with the Activity. The keyword null is not valid for this field. |
| »»» utbms_task_id | body | integer(int32) | false | The unique identifier for a single UtbmsTask associated with the Activity. The keyword null is not valid for this field. |
| »»» utbms_activity_id | body | integer(int32) | false | The unique identifier for a single UtbmsActivity associated with the Activity. The keyword null is not valid for this field. |
| »» communication | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Communication associated with the Activity. The keyword null is not valid for this field. |
| »» date | body | string(date) | false | The date the Activity was performed. (Expects an ISO-8601 date). |
| »» matter | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Matter associated with the Activity. The keyword null is not valid for this field. |
| »» note | body | string | false | A custom note to describe what the Activity is for. |
| »» price | body | number(double) | false | For an ExpenseEntry, it is the expense amount. |
| »» quantity | body | number(double) | false | The field is applicable to time entries only. |
| »» start_timer | body | boolean | false | Whether or not a timer should be started for this Activity. Only valid for non-FlatRate, non-billed TimeEntries. |
| »» user | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single User associated with the Activity. |
| »» utbms_expense | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single UtbmsExpense associated with the Activity. The keyword null is not valid for this field. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
»» price: For an ExpenseEntry, it is the expense amount.
For a TimeEntry, it is the hourly or flat amount. When updating a TimeEntry, if the price is not given or the user does not have the permission to view the rate, and its activity description, matter and/or user is changed, the price is reset according to the rate defined for the activity description, matter, client or user.
Support Link for Rates Hierarchy
Support Link for Billing Rate Visibility
»» quantity: The field is applicable to time entries only.
Version <= 4.0.3: The number of hours the Activity took.
Latest version: The number of seconds the Activity took.
»»» id: The unique identifier for a single User associated with the Activity.
Use the keyword null to specify no association.
On creation, if no user is specified, it will default to the current user.
If a TimeEntry is created by a Clio Connect user, the field is not editable.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ActivityShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Activity#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/activities/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/activities/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/activities/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/activities/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/activities/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/activities/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/activities/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /activities/{id}.json
Delete a single Activity
Outlines the parameters, optional and required, used when deleting the record for a single Activity
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the Activity. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Activity Rates
ActivityRate#index
Code samples
# You can also use wget
curl -X GET /api/v4/activity_rates.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/activity_rates.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/activity_rates.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/activity_rates.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/activity_rates.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/activity_rates.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/activity_rates.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /activity_rates.json
Return the data for all ActivityRates
Outlines the parameters, optional and required, used when requesting the data for all ActivityRates
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| co_counsel_contact_id | query | integer(int32) | false | The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the ActivityRate records with the matching property. |
| contact_id | query | integer(int32) | false | The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the ActivityRate records with the matching property. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of ActivityRate records to be returned. Limit can range between 1 and 200. Default: 200. |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ActivityRateList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
ActivityRate#create
Code samples
# You can also use wget
curl -X POST /api/v4/activity_rates.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/activity_rates.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/activity_rates.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"co_counsel_contact_id": 0,
"contact_id": 0,
"flat_rate": true,
"rate": 0
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/activity_rates.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/activity_rates.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/activity_rates.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/activity_rates.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /activity_rates.json
Create a new ActivityRate
Outlines the parameters and data fields used when creating a new ActivityRate
Body parameter
{
"data": {
"co_counsel_contact_id": 0,
"contact_id": 0,
"flat_rate": true,
"rate": 0
}
}
data:
co_counsel_contact_id: 0
contact_id: 0
flat_rate: true
rate: 0
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | ActivityRate_createBody | false | JSON body |
| » data | body | object | true | No description |
| »» co_counsel_contact_id | body | integer(int32) | false | The unique identifier for a single Contact associated with the ActivityRate. The keyword null is not valid for this field. |
| »» contact_id | body | integer(int32) | false | The unique identifier for a single Contact associated with the ActivityRate. The keyword null is not valid for this field. |
| »» flat_rate | body | boolean | false | Whether this is a flat rate |
| »» rate | body | number(double) | false | Monetary value of this rate. Either hourly value or flat rate value |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | ActivityRateShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
ActivityRate#show
Code samples
# You can also use wget
curl -X GET /api/v4/activity_rates/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/activity_rates/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/activity_rates/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/activity_rates/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/activity_rates/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/activity_rates/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/activity_rates/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /activity_rates/{id}.json
Return the data for a single ActivityRate
Outlines the parameters, optional and required, used when requesting the data for a single ActivityRate
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the ActivityRate. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ActivityRateShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
ActivityRate#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/activity_rates/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/activity_rates/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/activity_rates/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"co_counsel_contact_id": 0,
"contact_id": 0,
"flat_rate": true,
"rate": 0
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/activity_rates/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/activity_rates/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/activity_rates/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/activity_rates/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /activity_rates/{id}.json
Update a single ActivityRate
Outlines the parameters and data fields used when updating a single ActivityRate
Body parameter
{
"data": {
"co_counsel_contact_id": 0,
"contact_id": 0,
"flat_rate": true,
"rate": 0
}
}
data:
co_counsel_contact_id: 0
contact_id: 0
flat_rate: true
rate: 0
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the ActivityRate. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | ActivityRate_createBody | false | JSON body |
| » data | body | object | true | No description |
| »» co_counsel_contact_id | body | integer(int32) | false | The unique identifier for a single Contact associated with the ActivityRate. The keyword null is not valid for this field. |
| »» contact_id | body | integer(int32) | false | The unique identifier for a single Contact associated with the ActivityRate. The keyword null is not valid for this field. |
| »» flat_rate | body | boolean | false | Whether this is a flat rate |
| »» rate | body | number(double) | false | Monetary value of this rate. Either hourly value or flat rate value |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ActivityRateShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
ActivityRate#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/activity_rates/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/activity_rates/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/activity_rates/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/activity_rates/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/activity_rates/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/activity_rates/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/activity_rates/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /activity_rates/{id}.json
Delete a single ActivityRate
Outlines the parameters, optional and required, used when deleting the record for a single ActivityRate
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the ActivityRate. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Activity Descriptions
Activity Descriptions are custom Time Entry templates. Activity Descriptions help firms expedite their process for recording Time Entries, and ensure that their Time Entry descriptions are consistent.
ActivityDescription#index
Code samples
# You can also use wget
curl -X GET /api/v4/activity_descriptions.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/activity_descriptions.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/activity_descriptions.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/activity_descriptions.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/activity_descriptions.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/activity_descriptions.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/activity_descriptions.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /activity_descriptions.json
Return the data for all ActivityDescriptions
Outlines the parameters, optional and required, used when requesting the data for all ActivityDescriptions
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| created_since | query | string(date-time) | false | Filter ActivityDescription records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| flat_rate | query | boolean | false | Filter ActivityDescription records to those that have a flat rate, or not. |
| ids[] | query | integer(int32) | false | Filter ActivityDescription records to those having the specified unique identifiers |
| limit | query | integer(int32) | false | A limit on the number of ActivityDescription records to be returned. Limit can range between 1 and 200. Default: 200. |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| rate_for[matter_id] | query | integer(int32) | false | Matter id for rate calculation. |
| rate_for[user_id] | query | integer(int32) | false | User id for rate calculation. If not provided, the user associated to the API request is assumed. |
| updated_since | query | string(date-time) | false | Filter ActivityDescription records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
| user_id | query | integer(int32) | false | The unique identifier for a single User. The keyword null is not valid for this field. The list will be filtered to include only the ActivityDescription records with the matching property. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ActivityDescriptionList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
ActivityDescription#create
Code samples
# You can also use wget
curl -X POST /api/v4/activity_descriptions.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/activity_descriptions.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/activity_descriptions.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"default": true,
"groups": [
{
"id": 0
}
],
"name": "string",
"rate": {
"amount": 0,
"type": "User"
},
"visible_to_co_counsel": true
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/activity_descriptions.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/activity_descriptions.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/activity_descriptions.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/activity_descriptions.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /activity_descriptions.json
Create a new ActivityDescription
Outlines the parameters and data fields used when creating a new ActivityDescription
Body parameter
{
"data": {
"default": true,
"groups": [
{
"id": 0
}
],
"name": "string",
"rate": {
"amount": 0,
"type": "User"
},
"visible_to_co_counsel": true
}
}
data:
default: true
groups:
- id: 0
name: string
rate:
amount: 0
type: User
visible_to_co_counsel: true
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» default | body | boolean | false | Whether or not this should be the API User's default ActivityDescription. |
| »» groups | body | [object] | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Group associated with the ActivityDescription. The keyword null is not valid for this field. |
| »» name | body | string | true | A detailed description of the ActivityDescription. |
| »» rate | body | object | false | No description |
| »»» amount | body | number(double) | false | The rate of the ActivityDescription. This is ignored for 'User' rates. |
| »»» type | body | string | false | What kind of rate it will be. |
| »» visible_to_co_counsel | body | boolean | false | Whether or not co counsels on the account can see this ActivityDescription. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »»» type | User |
| »»» type | FlatRate |
| »»» type | Custom |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | ActivityDescriptionShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
ActivityDescription#show
Code samples
# You can also use wget
curl -X GET /api/v4/activity_descriptions/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/activity_descriptions/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/activity_descriptions/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/activity_descriptions/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/activity_descriptions/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/activity_descriptions/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/activity_descriptions/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /activity_descriptions/{id}.json
Return the data for a single ActivityDescription
Outlines the parameters, optional and required, used when requesting the data for a single ActivityDescription
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the ActivityDescription. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ActivityDescriptionShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
ActivityDescription#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/activity_descriptions/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/activity_descriptions/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/activity_descriptions/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"default": true,
"groups": [
{
"id": 0,
"_deleted": true
}
],
"name": "string",
"rate": {
"amount": 0,
"type": "User"
},
"visible_to_co_counsel": true
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/activity_descriptions/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/activity_descriptions/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/activity_descriptions/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/activity_descriptions/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /activity_descriptions/{id}.json
Update a single ActivityDescription
Outlines the parameters and data fields used when updating a single ActivityDescription
Body parameter
{
"data": {
"default": true,
"groups": [
{
"id": 0,
"_deleted": true
}
],
"name": "string",
"rate": {
"amount": 0,
"type": "User"
},
"visible_to_co_counsel": true
}
}
data:
default: true
groups:
- id: 0
_deleted: true
name: string
rate:
amount: 0
type: User
visible_to_co_counsel: true
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the ActivityDescription. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» default | body | boolean | false | Whether or not this should be the API User's default ActivityDescription. |
| »» groups | body | [object] | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Group associated with the ActivityDescription. The keyword null is not valid for this field. |
| »»» _deleted | body | boolean | false | A flag to determine if this Group should lose access to this ActivityDescription. |
| »» name | body | string | false | A detailed description of the ActivityDescription. |
| »» rate | body | object | false | No description |
| »»» amount | body | number(double) | false | The rate of the ActivityDescription. This is ignored for 'User' rates. |
| »»» type | body | string | false | What kind of rate it will be. |
| »» visible_to_co_counsel | body | boolean | false | Whether or not co counsels on the account can see this ActivityDescription. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »»» type | User |
| »»» type | FlatRate |
| »»» type | Custom |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ActivityDescriptionShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
ActivityDescription#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/activity_descriptions/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/activity_descriptions/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/activity_descriptions/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/activity_descriptions/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/activity_descriptions/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/activity_descriptions/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/activity_descriptions/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /activity_descriptions/{id}.json
Delete a single ActivityDescription
Outlines the parameters, optional and required, used when deleting the record for a single ActivityDescription
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the ActivityDescription. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Allocations
Once a [Payment}(https://support.clio.com/hc/en-us/articles/203451210-Recording-Payments-on-Bills) or Credit Memo has been recorded, an Allocation links it to a Bill.
Allocation#index
Code samples
# You can also use wget
curl -X GET /api/v4/allocations.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/allocations.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/allocations.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/allocations.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/allocations.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/allocations.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/allocations.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /allocations.json
Return the data for all Allocations
Outlines the parameters, optional and required, used when requesting the data for all Allocations
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| bill_id | query | integer(int32) | false | The unique identifier for a single Bill. The keyword null is not valid for this field. The list will be filtered to include only the Allocation records with the matching property. |
| contact_id | query | integer(int32) | false | The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the Allocation records with the matching property. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of Allocation records to be returned. Limit can range between 1 and 200. Default: 200. |
| matter_id | query | integer(int32) | false | The unique identifier for a single Matter. The keyword null is not valid for this field. The list will be filtered to include only the Allocation records with the matching property. |
| order | query | string | false | Orders the Allocation records by the given field. Default: date(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| parent_id | query | integer(int32) | false | ID of parent (either a Payment or CreditMemo) this allocation belongs to |
| parent_type | query | integer(int32) | false | Filter Allocation records based on whether the parent is a CreditMemo or a Payment. |
| status | query | string | false | Filter Allocation records to those that are valid or invalid. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | date(asc) |
| order | date(desc) |
| status | valid |
| status | invalid |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | AllocationList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Allocation#show
Code samples
# You can also use wget
curl -X GET /api/v4/allocations/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/allocations/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/allocations/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/allocations/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/allocations/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/allocations/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/allocations/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /allocations/{id}.json
Return the data for a single Allocation
Outlines the parameters, optional and required, used when requesting the data for a single Allocation
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the Allocation. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | AllocationShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Bank Accounts
These accounts are meant to mirror the firm’s accounts at their financial institution. Users can add a bank account to Clio to use with Clio Payments, and for use as an audit and reconciliation tool.
BankAccount#index
Code samples
# You can also use wget
curl -X GET /api/v4/bank_accounts.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/bank_accounts.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/bank_accounts.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/bank_accounts.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/bank_accounts.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/bank_accounts.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/bank_accounts.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /bank_accounts.json
Return the data for all BankAccounts
Outlines the parameters, optional and required, used when requesting the data for all BankAccounts
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of BankAccount records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the BankAccount records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| show_empty_accounts | query | boolean | false | Filter BankAccount records to those having a zero or non zero balance. |
| type | query | string | false | Filter BankAccount records to those having a specific type. |
| user_id | query | integer(int32) | false | The unique identifier for a single User. Use the keyword null to match those without a BankAccount. The list will be filtered to include only the BankAccount records with the matching property. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | id(asc) |
| order | id(desc) |
| order | name(asc) |
| order | name(desc) |
| order | institution(asc) |
| order | institution(desc) |
| order | account_number(asc) |
| order | account_number(desc) |
| order | transit_number(asc) |
| order | transit_number(desc) |
| order | currency(asc) |
| order | currency(desc) |
| type | OperatingAccount |
| type | TrustAccount |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | BankAccountList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
BankAccount#create
Code samples
# You can also use wget
curl -X POST /api/v4/bank_accounts.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/bank_accounts.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/bank_accounts.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"account_number": "string",
"balance": 0,
"currency": "string",
"default_account": true,
"domicile_branch": "string",
"general_ledger_number": "string",
"holder": "string",
"institution": "string",
"name": "string",
"swift": "string",
"transit_number": "string",
"type": "Operating"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/bank_accounts.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/bank_accounts.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/bank_accounts.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/bank_accounts.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /bank_accounts.json
Create a new BankAccount
Outlines the parameters and data fields used when creating a new BankAccount
Body parameter
{
"data": {
"account_number": "string",
"balance": 0,
"currency": "string",
"default_account": true,
"domicile_branch": "string",
"general_ledger_number": "string",
"holder": "string",
"institution": "string",
"name": "string",
"swift": "string",
"transit_number": "string",
"type": "Operating"
}
}
data:
account_number: string
balance: 0
currency: string
default_account: true
domicile_branch: string
general_ledger_number: string
holder: string
institution: string
name: string
swift: string
transit_number: string
type: Operating
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» account_number | body | string | false | Account number for the BankAccount. |
| »» balance | body | number(double) | false | BankAccount balance. |
| »» currency | body | string | false | Currency the BankAccount is in. |
| »» default_account | body | boolean | false | Whether or not the BankAccount should be the default account. |
| »» domicile_branch | body | string | false | Branch where the BankAccount was opened. |
| »» general_ledger_number | body | string | false | General ledger number used for the Law Society of Alberta. |
| »» holder | body | string | false | BankAccount holder. |
| »» institution | body | string | false | Financial institution. |
| »» name | body | string | false | BankAccount name. |
| »» swift | body | string | false | Identification code for the financial institution. |
| »» transit_number | body | string | false | Transit number for the BankAccount branch. |
| »» type | body | string | true | Type of BankAccount. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »» type | Operating |
| »» type | Trust |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | BankAccountShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
BankAccount#show
Code samples
# You can also use wget
curl -X GET /api/v4/bank_accounts/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/bank_accounts/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/bank_accounts/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/bank_accounts/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/bank_accounts/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/bank_accounts/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/bank_accounts/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /bank_accounts/{id}.json
Return the data for a single BankAccount
Outlines the parameters, optional and required, used when requesting the data for a single BankAccount
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the BankAccount. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | BankAccountShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
BankAccount#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/bank_accounts/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/bank_accounts/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/bank_accounts/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"account_number": "string",
"currency": "string",
"default_account": true,
"domicile_branch": "string",
"general_ledger_number": "string",
"holder": "string",
"institution": "string",
"name": "string",
"swift": "string",
"transit_number": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/bank_accounts/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/bank_accounts/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/bank_accounts/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/bank_accounts/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /bank_accounts/{id}.json
Update a single BankAccount
Outlines the parameters and data fields used when updating a single BankAccount
Body parameter
{
"data": {
"account_number": "string",
"currency": "string",
"default_account": true,
"domicile_branch": "string",
"general_ledger_number": "string",
"holder": "string",
"institution": "string",
"name": "string",
"swift": "string",
"transit_number": "string"
}
}
data:
account_number: string
currency: string
default_account: true
domicile_branch: string
general_ledger_number: string
holder: string
institution: string
name: string
swift: string
transit_number: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the BankAccount. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» account_number | body | string | false | Account number for the BankAccount. |
| »» currency | body | string | false | Currency the BankAccount is in. |
| »» default_account | body | boolean | false | Whether or not the BankAccount should be the default account. |
| »» domicile_branch | body | string | false | Branch where the BankAccount was opened. |
| »» general_ledger_number | body | string | false | General ledger number used for the Law Society of Alberta. |
| »» holder | body | string | false | BankAccount holder. |
| »» institution | body | string | false | Financial institution. |
| »» name | body | string | false | BankAccount name. |
| »» swift | body | string | false | Identification code for the financial institution. |
| »» transit_number | body | string | false | Transit number for the BankAccount branch. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | BankAccountShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
BankAccount#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/bank_accounts/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/bank_accounts/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/bank_accounts/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/bank_accounts/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/bank_accounts/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/bank_accounts/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/bank_accounts/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /bank_accounts/{id}.json
Delete a single BankAccount
Outlines the parameters, optional and required, used when deleting the record for a single BankAccount
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the BankAccount. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Bank Transactions
BankTransaction#index
Code samples
# You can also use wget
curl -X GET /api/v4/bank_transactions.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/bank_transactions.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/bank_transactions.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/bank_transactions.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/bank_transactions.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/bank_transactions.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/bank_transactions.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /bank_transactions.json
Return the data for all BankTransactions
Outlines the parameters, optional and required, used when requesting the data for all BankTransactions
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| bank_account_id | query | integer(int32) | false | The unique identifier for a single BankAccount. The keyword null is not valid for this field. The list will be filtered to include only the BankTransaction records with the matching property. |
| client_id | query | integer(int32) | false | The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the BankTransaction records with the matching property. |
| created_since | query | string(date-time) | false | Filter BankTransaction records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| ids[] | query | integer(int32) | false | Filter BankTransaction records to those having the specified unique identifiers |
| limit | query | integer(int32) | false | A limit on the number of BankTransaction records to be returned. Limit can range between 1 and 200. Default: 200. |
| matter_id | query | integer(int32) | false | The unique identifier for a single Matter. The keyword null is not valid for this field. The list will be filtered to include only the BankTransaction records with the matching property. |
| order | query | string | false | Orders the BankTransaction records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| type | query | string | false | Filter BankTransaction records to those having a specific type. |
| updated_since | query | string(date-time) | false | Filter BankTransaction records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| type | asset |
| type | liability |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | BankTransactionList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
BankTransaction#show
Code samples
# You can also use wget
curl -X GET /api/v4/bank_transactions/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/bank_transactions/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/bank_transactions/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/bank_transactions/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/bank_transactions/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/bank_transactions/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/bank_transactions/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /bank_transactions/{id}.json
Return the data for a single BankTransaction
Outlines the parameters, optional and required, used when requesting the data for a single BankTransaction
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the BankTransaction. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | BankTransactionShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Bank Transfers
BankTransfer#show
Code samples
# You can also use wget
curl -X GET /api/v4/bank_transfers/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/bank_transfers/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/bank_transfers/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/bank_transfers/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/bank_transfers/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/bank_transfers/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/bank_transfers/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /bank_transfers/{id}.json
Return the data for a single BankTransfer
Outlines the parameters, optional and required, used when requesting the data for a single BankTransfer
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the BankTransfer. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | BankTransferShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Bill Themes
BillTheme#index
Code samples
# You can also use wget
curl -X GET /api/v4/bill_themes.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/bill_themes.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/bill_themes.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/bill_themes.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/bill_themes.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/bill_themes.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/bill_themes.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /bill_themes.json
Return the data for all BillThemes
Outlines the parameters, optional and required, used when requesting the data for all BillThemes
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| created_since | query | string(date-time) | false | Filter BillTheme records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| ids[] | query | integer(int32) | false | Filter BillTheme records to those having the specified unique identifiers |
| limit | query | integer(int32) | false | A limit on the number of BillTheme records to be returned. Limit can range between 1 and 200. Default: 200. |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| updated_since | query | string(date-time) | false | Filter BillTheme records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | BillThemeList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
BillTheme#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/bill_themes/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string'
PATCH /api/v4/bill_themes/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/bill_themes/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"config": "string",
"name": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
fetch('/api/v4/bill_themes/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string'
}
result = RestClient.patch '/api/v4/bill_themes/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string'
}
r = requests.patch('/api/v4/bill_themes/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/bill_themes/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /bill_themes/{id}.json
Update a single BillTheme
Outlines the parameters and data fields used when updating a single BillTheme
Body parameter
{
"data": {
"config": "string",
"name": "string"
}
}
data:
config: string
name: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the BillTheme. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» config | body | string | false | A string containing settings for the BillTheme. |
| »» name | body | string | false | Name of the BillTheme. |
Detailed descriptions
»» config: A string containing settings for the BillTheme. Values set in this string will apply to any bill using this BillTheme, unless overridden by the bill.
Available settings within this string: - "show": Values set under this key determine how/if sections will appear on a bill. - "text": Values set under this key determine what will display if the section is shown. - "css": Values set under this key determine CSS rules for sections on a bill.
Available settings under "show": - "client_account": Can be set to "hidden", "details", or "summary" to control the display and content of this section. - "client_account_details_balance_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "client_account_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "client_account_include_matter_transfers": Can be set to true/false to toggle displaying this section. - "client_account_matter_date_text_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "client_account_matter_details_description_text_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "client_account_matter_title_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "client_account_matter_type_text_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "client_account_only_bill_matters": Can be set to true/false to toggle displaying this section. - "client_account_other_matters": Can be set to true/false to toggle displaying this section. - "client_account_payments_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "client_account_receipts_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "client_account_summary_balance_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "client_justification": Can be set to "center", "left", or "right" to control the justification of this section. - "client_operating_account_omit_balance": Can be set to true/false to toggle displaying this section. - "clio_payments_amount_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "clio_payments_amount_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "clio_payments_date_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "clio_payments_date_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "clio_payments_note_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "clio_payments_note_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "clio_payments_reference_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "clio_payments_reference_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "clio_payments_status_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "clio_payments_status_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "draft_watermark": Can be set to true/false to toggle displaying a draft watermark. Will only affect bills in draft. - "envelope_friendly": Can be set to true/false to toggle size styling for the bill. - "firm_address": Can be set to true/false to toggle displaying this section. - "firm_justification": Can be set to "center", "left", or "right" to control the justification of this section. - "firm_title": Can be set to true/false to toggle displaying this section. - "footer_invoice_memo": Can be set to true/false to toggle displaying this section. - "footer_invoice_payable": Can be set to true/false to toggle displaying this section. - "footer_justification": Can be set to "center", "left", or "right" to control the justification of this section. - "footer_page_numbers": Can be set to true/false to toggle displaying this section. - "header_invoice_issued_date": Can be set to true/false to toggle displaying this section. - "header_invoice_number": Can be set to true/false to toggle displaying this section. - "header_on_first_page": Can be set to true/false to toggle displaying this section. - "interest_date": Can be set to true/false to toggle displaying this section. - "interest_date_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "interest_date_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "interest_description": Can be set to true/false to toggle displaying this section. - "interest_details_description": Can be set to true/false to toggle displaying this section. - "interest_details_description_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "interest_details_description_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "interest_details_description_new_line": Can be set to true/false to toggle displaying a interest descriptions on a new line. - "interest_headings_order": Should be set to an array that contains the values: ["interest_type"," interest_date", "interest_details_description", "interest_total"] in the order you would like the sections to display on your bills. - "interest_total": Can be set to true/false to toggle displaying this section. - "interest_total_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "interest_total_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "interest_totals_subtotal": Can be set to true/false to toggle displaying this section. - "interest_type": Can be set to true/false to toggle displaying this section. - "interest_type_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "interest_type_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "invoice_information_due_date": Can be set to true/false to toggle displaying this section. - "invoice_information_invoice_number": Can be set to true/false to toggle displaying this section. - "invoice_information_issue_date": Can be set to true/false to toggle displaying this section. - "invoice_title": Can be set to true/false to toggle displaying this section. - "logo": Can be set to true/false to toggle displaying this section. - "logo_justification": Can be set to "center", "left", or "right" to control the justification of this section. - "matter_attorney_display": Can be set to "name" or "initials" to control the content shown in this section. - "matter_attorney_initials": Can be set to true/false to toggle displaying this section. - "matter_attorney_initials_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_attorney_initials_expenses": Can be set to true/false to toggle displaying this section. - "matter_attorney_initials_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_attorney_initials_products": Can be set to true/false to toggle displaying this section. - "matter_attorney_summary_position_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_attorney_summary_time_keeper_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_client_ref": Can be set to true/false to toggle displaying this section. - "matter_date": Can be set to true/false to toggle displaying this section. - "matter_date_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_date_expenses": Can be set to true/false to toggle displaying this section. - "matter_date_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_date_products": Can be set to true/false to toggle displaying this section. - "matter_date_trust": Can be set to true/false to toggle displaying this section. - "matter_description": Can be set to true/false to toggle displaying this section. - "matter_details_description": Can be set to true/false to toggle displaying this section. - "matter_details_description_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_details_description_expenses": Can be set to true/false to toggle displaying this section. - "matter_details_description_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_details_description_new_line": Can be set to true/false to toggle displaying a matter descriptions on a new line. - "matter_details_description_products": Can be set to true/false to toggle displaying this section. - "matter_details_description_trust": Can be set to true/false to toggle displaying this section. - "matter_heading_justification": Can be set to "center", "left", or "right" to control the justification of this section. - "matter_headings_order": Should be set to an array that contains the values: ["matter_type", "matter_attorney_initials", "matter_date", "matter_details_description", "matter_quantity", "matter_rate", "matter_line_item_discount", "matter_total", "matter_total_with_tax", "matter_tax"] in the order you would like the sections to display on your bills. - "matter_headings_order_expenses": Should be set to an array that contains the values: ["matter_type", "matter_attorney_initials", "matter_date", "matter_details_description", "matter_quantity", "matter_rate", "matter_line_item_discount", "matter_total", "matter_total_with_tax", "matter_tax"] in the order you would like the sections to display on your bills. - "matter_headings_order_products": Should be set to an array that contains the values: ["matter_type", "matter_attorney_initials", "matter_date", "matter_details_description", "matter_quantity", "matter_rate", "matter_line_item_discount", "matter_total", "matter_total_with_tax", "matter_tax"] in the order you would like the sections to display on your bills. - "matter_headings_order_trust": Should be set to an array that contains the values: ["matter_date", "matter_details_description", "matter_total"] in the order you would like the sections to display on your bills. - "matter_individual_payments": Can be set to true/false to toggle displaying this section. - "matter_line_item_discount": Can be set to true/false to toggle displaying this section. - "matter_line_item_discount_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_line_item_discount_expenses": Can be set to true/false to toggle displaying this section. - "matter_line_item_discount_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_line_item_discount_products": Can be set to true/false to toggle displaying this section. - "matter_line_item_discount_text_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_line_items_activity_descriptions": Can be set to true/false to toggle displaying this section. - "matter_number": Can be set to true/false to toggle displaying this section. - "matter_quantity": Can be set to true/false to toggle displaying this section. - "matter_quantity_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_quantity_expenses": Can be set to true/false to toggle displaying this section. - "matter_quantity_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_quantity_products": Can be set to true/false to toggle displaying this section. - "matter_quantity_text_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_rate": Can be set to true/false to toggle displaying this section. - "matter_rate_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_rate_expenses": Can be set to true/false to toggle displaying this section. - "matter_rate_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_rate_products": Can be set to true/false to toggle displaying this section. - "matter_rate_text_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_separate_line_items": Can be set to true/false to toggle displaying this section. - "matter_show_amount_with_percentage": Can be set to true/false to toggle displaying this section. - "matter_tax_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_tax_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_total": Can be set to true/false to toggle displaying this section. - "matter_total_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_total_expenses": Can be set to true/false to toggle displaying this section. - "matter_total_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_total_products": Can be set to true/false to toggle displaying this section. - "matter_total_text_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_total_trust": Can be set to true/false to toggle displaying this section. - "matter_total_with_tax_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_total_with_tax_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_totals_subtotal": Can be set to true/false to toggle displaying this section. - "matter_totals_subtotal_line_item_discount": Can be set to true/false to toggle displaying this section. - "matter_type": Can be set to true/false to toggle displaying this section. - "matter_type_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_type_expenses": Can be set to true/false to toggle displaying this section. - "matter_type_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_type_products": Can be set to true/false to toggle displaying this section. - "payment_profile_discount": Can be set to true/false to toggle displaying this section. Even if set to true, this section will not be shown if the bill does not have an early payment discount. - "payment_profile_grace_period": Can be set to true/false to toggle displaying this section. Even if set to true, this section will not be shown if the bill does not have a grace period. - "payment_profile_interest": Can be set to true/false to toggle displaying this section. Even if set to true, this section will not be shown if the bill does not have a recurring interest charge. - "payment_profile_no_grace_period": Can be set to true/false to toggle displaying this section. Even if set to true, this section will not be shown if the bill has a grace period. - "show_clio_payments": Can be set to true/false to toggle displaying this section. - "soa_title": Can be set to true/false to toggle displaying this section. - "statement_of_accounts": Can be set to true/false to toggle displaying this section. - "statement_of_accounts_amount_due_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_amount_due_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_balance_due_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_balance_due_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_details": Can be set to true/false to toggle displaying this section. - "statement_of_accounts_due_on_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_due_on_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_include_trust": Can be set to true/false to toggle displaying this section. - "statement_of_accounts_invoice_number_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_invoice_number_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_note": Can be set to true/false to toggle displaying this section. Even if set to true, this section will not be shown if "statement_of_accounts_summary" is "hidden". - "statement_of_accounts_payments_received_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_payments_received_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_summary": Can be set to "hidden", "above", or "below" to control the location of this section. This will determine if the statements of account section on the bill is displayed, and if it displays above or below the line items. - "statement_of_accounts_summary_detail": Can be set to "simple", "with_payment", or "with_account_balance" to control the values shown in this section. - "statement_of_accounts_summary_only_bill_matters": Can be set to true/false to control the values shown in this section. - "void_watermark": Can be set to true/false to toggle displaying a void watermark. Will only affect bills that have been void.
Available settings under "text", each of these can be set to the text you would like to display when they are shown, some of these fields allow substituting values with codes wrapped in curly braces: - "address_email" - "address_fax" - "address_phone" - "attorney_summary_position" - "attorney_summary_time_keeper" - "client_account_account" - "client_account_balance" - "client_account_payments" - "client_account_receipts" - "client_account_total_balance" - "clio_payments_amount" - "clio_payments_date" - "clio_payments_note" - "clio_payments_reference" - "clio_payments_status" - "clio_payments_title" - "clio_payments_total" - "discount_early_payment_balance_owing_text" - "discount_early_payment_end_date_text" - "discount_early_payment_text" - "discount_early_payment_total_text" - "footer_invoice_memo" - {{billing_setting_memo}}" can be used to reference your billing settings memo. - {{bill_memo}} can be used to reference your bills memo. - "footer_invoice_payable" - {{firm_name}} can be used to reference your firms name. - "footer_page" - "footer_page_of" - "grand_total_text" - {{same_as_total_heading}} can be used to reference the value in "text" => "matter_total_text" - "interest_date_text" - "interest_details_description_text" - "interest_subtotal_text" - "interest_text" - "interest_title_text" - "interest_total_text" - "interest_type_text" - "invoice_due_date_text" - "invoice_information_due_date_receipt_text" - "invoice_issued_date_text" - "invoice_lc" - "invoice_number_text" - "invoice_purchase_order_text" - "invoice_title" - "matter_attorney_initials_text" - "matter_balance_owing_text" - "matter_client_ref" - {{client_ref_num}}" can be used to reference the matters client reference. - "matter_credit_note_text" - "matter_date_text" - "matter_details_description_text" - "matter_discount_text" - "matter_expense_subtotal_text" - "matter_expense_text" - "matter_expense_title_text" - "matter_grand_total_text" - {{same_as_total_heading}} can be used to reference the value in "text" => "matter_total_text" - "matter_line_item_discount_expenses_text" - "matter_line_item_discount_products_text"client_address_custom" - "matter_line_item_discount_subtotal_text" - "matter_line_item_discount_text" - "matter_payment_text" - "matter_product_subtotal_text" - "matter_product_text" - "matter_product_title_text" - "matter_quantity_expenses_text" - "matter_quantity_products_text" - "matter_quantity_subtotal_text" - "matter_quantity_text" - "matter_quantity_total_text" - "matter_rate_expenses_text" - "matter_rate_products_text" - "matter_rate_text" - "matter_refund_text" - "matter_service_subtotal_text" - "matter_service_text" - "matter_service_title_text" - "matter_subtotal_text" - "matter_tax_text" - "matter_title" - "matter_total_text" - "matter_total_with_tax_text" - "matter_trust_line_items_title_text" - "matter_trust_text" - "matter_type_text" - "payment_profile" - "payment_profile_discount" - {{discount_rate}} can be used to reference the bills discount rate. - {{interest_rate}} can be used to reference the bills interest rate. - {{interest_type}} can be used to reference the bills interest type. - {{grace_period}} can be used to reference the grace period for the bill. - {{discount_period}} can be used to reference the discount period for the bill. - {{interest_period}} can be used to reference the interest period for the bill. - "payment_profile_grace_period" - {{discount_rate}} can be used to reference the bills discount rate. - {{interest_rate}} can be used to reference the bills interest rate. - {{interest_type}} can be used to reference the bills interest type. - {{grace_period}} can be used to reference the grace period for the bill. - {{discount_period}} can be used to reference the discount period for the bill. - {{interest_period}} can be used to reference the interest period for the bill. - "payment_profile_interest" - {{discount_rate}} can be used to reference the bills discount rate. - {{interest_rate}} can be used to reference the bills interest rate. - {{interest_type}} can be used to reference the bills interest type. - {{grace_period}} can be used to reference the grace period for the bill. - {{discount_period}} can be used to reference the discount period for the bill. - {{interest_period}} can be used to reference the interest period for the bill. - "payment_profile_no_grace_period" - {{discount_rate}} can be used to reference the bills discount rate. - {{interest_rate}} can be used to reference the bills interest rate. - {{interest_type}} can be used to reference the bills interest type. - {{grace_period}} can be used to reference the grace period for the bill. - {{discount_period}} can be used to reference the discount period for the bill. - {{interest_period}} can be used to reference the interest period for the bill. - "remittance_checks" - "remittance_checks_label" - "remittance_checks_title" - "remittance_note" - {{bill_number}} can be used to reference the bills number. - "remittance_note_soa" - "remittance_title" - "remittance_wire_bank_account" - "remittance_wire_bank_account_label" - "remittance_wire_bank_name" - "remittance_wire_bank_name_label" - "remittance_wire_bank_routing" - "remittance_wire_bank_routing_label" - "remittance_wire_bank_swift" - "remittance_wire_bank_swift_label" - "remittance_wire_title" - "soa_title" - "statement_of_accounts_amount" - "statement_of_accounts_amount_in_trust" - "statement_of_accounts_amount_on_account" - "statement_of_accounts_balance" - "statement_of_accounts_current_invoice" - "statement_of_accounts_details_title" - "statement_of_accounts_due_on" - "statement_of_accounts_invoice_number" - "statement_of_accounts_new_charges" - "statement_of_accounts_note" - {{firm_name}} can be used to reference your firms name. - "statement_of_accounts_original_invoice_number" - "statement_of_accounts_other_interest_invoices" - "statement_of_accounts_other_invoices" - "statement_of_accounts_outstanding_balance" - "statement_of_accounts_payments" - "statement_of_accounts_summary_title" - "statement_of_accounts_total_balance" - "statement_of_accounts_total_credit" - "statement_of_accounts_total_outstanding_balance" - "trust_request_adjustments_title_text" - "trust_request_lc" - "trust_request_number_text" - "trust_request_title" - "trust_request_total_text"
Available settings under "css", each of these has nested values that can be set to apply CSS rules to bills: - "client" - "color": Color used in the client section. Value is in 'Hex'. - "font-family": Font used in client section. - "font-size": Font size in client section. Value is in 'em'. - "client_address" - "margin-bottom": Bottom margin size for the client address. Value is in 'em'. - "firm_title" - "margin-bottom": Bottom margin height for the bills firm title. Value is in 'em'. - "color": Color for the bills firm title section. Value is in 'Hex'. - "font-family": Font used for text in the firm title. - "font-size": Font size for the bills firm title. Value is in 'em'. - "border-color": Border color property for the firm title on a bill. Value is in 'Hex'. - "border-style": Border style property for the firm title on a bill. Accepts standard CSS options for 'border-style' property. - "border-width": Border width property for table rows on a bill. Accepts standard CSS options for 'border-width' property. - "background-color": Background color for the firm title on a bill. Value is in 'Hex'. - "header" - "margin-bottom": Bottom margin size for the bill header. Value is in 'em'. - "inside_margins" - "font-family": Primary font used on the bill. - "font-size": Primary font size used for bill. - "color": Primary font used on the bill, default is "Arial". - "invoice_title" - "color": Color used in the invoice title section. Value is in 'Hex'. - "font-family": Font used in invoice title section. - "font-size": Font size in invoice title section. Value is in 'em'. - "logo_img" - "height": Height for the bills logo image. Value is in 'em'. - "margin-top": Top margin height for the bills logo image. Value is in 'em'. - "margin-bottom": Bottom margin height for the bills logo image. Value is in 'em'. - "matter_description" - "margin-top": Top margin size for matter description section. Value is in 'em'. - "color": Color used in the matter description section. Value is in 'Hex'. - "font-family": Font used in matter description section. - "font-size": Font size in matter description section. Value is in 'em'. - "matter_number" - "color": Color used in the matter number section. Value is in 'Hex'. - "font-family": Font used in matter number section. - "font-size": Font size in matter number section. Value is in 'em'. - "page_margins" - "margin-left": Left margin size for the bill. Value is in 'em'. - "margin-right": Right margin size for the bill. Value is in 'em'. - "margin-top": Top margin size for the bill. Value is in 'em'. - "margin-bottom": Bottom margin size for the bill. Value is in 'em'. - "size": Size property for the bill, default is "US-Letter". - "remittance_title" - "color": Color used in the remittance title section. Value is in 'Hex'. - "font-family": Font used in remittance title section. - "font-size": Font size in remittance title section. Value is in 'em'. - "background-color": Background color for the remittance title section on a bill. Value is in 'Hex'. - "border-color": Border color property for the remittance title section on a bill. Value is in 'Hex'. - "border-style": Border style property for the remittance title section on a bill. Accepts standard CSS options for 'border-style' property. - "border-width": Border width property for the remittance title section on a bill. Accepts standard CSS options for 'border-width' property. - "statement_of_accounts_title" - "color": Color used in the statement of accounts section. Value is in 'Hex'. - "font-family": Font used in statement of accounts section. - "font-size": Font size in statement of accounts section. Value is in 'em'. - "background-color": Background color for the statement of accounts section on a bill. Value is in 'Hex'. - "border-color": Border color property for the statement of accounts section on a bill. Value is in 'Hex'. - "border-style": Border style property for the statement of accounts section on a bill. Accepts standard CSS options for 'border-style' property. - "border-width": Border width property for the statement of accounts section on a bill. Accepts standard CSS options for 'border-width' property. - "table_even_line" - "background-color": Background color for even table rows. Value is in 'Hex'. - "table_h4" - "background-color": Background color for table headers. Value is in 'Hex'. - "table_line" - "border-bottom-width": Bottom border width for table rows. Value is in 'px'. - "border-bottom-style": Bottom border style property for table rows on a bill. Accepts standard CSS options for 'border-style' property. - "border-bottom-color": Bottom border color property for table rows on a bill. Value is in 'Hex'. - "table_odd_line" - "background-color": Background color for odd table rows. Value is in 'Hex'.
A config with samples of each type of option is shown below:
config = {
"show": {
"statement_of_accounts_summary": "left"
"statement_of_accounts_note": true,
"footer_invoice_payable": true,
"footer_invoice_memo": true,
"payment_profile_no_grace_period": true,
"payment_profile_grace_period": true,
"payment_profile_discount": true,
"payment_profile_interest": true,
"interest_headings_order": ["interest_type"," interest_date", "interest_details_description", "interest_total"]
},
"text": {
"statement_of_accounts_note": "Please make all amounts payable to: {{firm_name}}",
"footer_invoice_payable": "Please make all amounts payable to: {{firm_name}}",
"footer_invoice_memo": "{{bill_memo}}",
"payment_profile_no_grace_period": "Payment is due upon receipt.",
"payment_profile_grace_period": "Please pay within {{grace_period}}.",
"payment_profile_discount": "{{discount_rate}}% discount will be applied if payment is received within {{discount_period}}.",
"payment_profile_interest": "{{interest_rate}}% {{interest_type}} annual interest will be charged every {{interest_period}}.",
},
"css": {
"statement_of_accounts_title": {
"color": "#00cc00",
"font-family": "Times New Roman",
"font-size": "0.875em",
"background-color": "#ccff99",
"border-color": "#0033ff",
"border-style": "dotted",
"border-width": "thick"
},
"remittance_title": {
"color": "#00ff00",
"background-color": "None",
"border-color": "#0033cc",
"border-width": "medium",
"border-style": "dotted",
"font-family": "Arial",
"font-size": "1.5em"
}
}
}
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | BillThemeShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Billable Clients
Users can view all Billable Clients, or clients with outstanding Bills, on the Billable Clients page, located under the Bills tab.
BillableClient#index
Code samples
# You can also use wget
curl -X GET /api/v4/billable_clients.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/billable_clients.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/billable_clients.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/billable_clients.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/billable_clients.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/billable_clients.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/billable_clients.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /billable_clients.json
Return the data for all BillableClients
Outlines the parameters, optional and required, used when requesting the data for all BillableClients
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| client_id | query | integer(int32) | false | The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the BillableClient records with the matching property. |
| custom_field_values | query | string | false | Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or, |
| end_date | query | string(date) | false | Filter BillableClient records to those that have Matters with unbilled Activities on or before this date (Expects an ISO-8601 date). |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of BillableClient records to be returned. Limit can range between 1 and 25. Default: 25. |
| matter_id | query | integer(int32) | false | The unique identifier for a single Matter. The keyword null is not valid for this field. The list will be filtered to include only the BillableClient records with the matching property. |
| originating_attorney_id | query | integer(int32) | false | The unique identifier for a single User. Use the keyword null to match those without a BillableClient. The list will be filtered to include only the BillableClient records with the matching property. |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| query | query | string | false | Wildcard search for display_number or number or description matching a given string. |
| responsible_attorney_id | query | integer(int32) | false | The unique identifier for a single User. Use the keyword null to match those without a BillableClient. The list will be filtered to include only the BillableClient records with the matching property. |
| start_date | query | string(date) | false | Filter BillableClient records to those that have Matters with unbilled Activities on or after this date (Expects an ISO-8601 date). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
custom_field_values: Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or,
if the value type only supports one operator, the supported operator is used. In the latter case, no check for operator is performed on the input string.
The key for the custom field value filter is the custom_field.id. e.g. custom_field_values[12345]
If an operator is used for a type that does not support it, an 400 Bad Request is returned.
Supported operators:
* checkbox, contact, matter, picklist : =
e.g. ?custom_field_values[1]=42
currency,date,time,numeric:=,<,>,<=,>=
e.g. ?custom_field_values[1]=>=105.4
email,text_area,text_line,url:=
e.g. ?custom_field_values[1]=url_encoded
Multiple conditions for the same custom field:
If you want to use more than one operator to filter a custom field, you can do so by passing in an array of values.
e.g. ?custom_field_values[1]=[<=50, >=45]
Enumerated Values
| Parameter | Value |
|---|---|
| custom_field_values | = |
| custom_field_values | < |
| custom_field_values | > |
| custom_field_values | <= |
| custom_field_values | >= |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | BillableClientList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Billable Matters
Users can see all Matters that have outstanding bills attached to them by filtering out all non-billable Matters under the Matters tab.
Users can disable billing for certain Matters. They can still enter Activities on these Matters, but those Activities will not appear in the Bills page.
BillableMatter#ids
Code samples
# You can also use wget
curl -X GET /api/v4/billable_matters/ids.json?client_id=0 \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/billable_matters/ids.json?client_id=0 HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/billable_matters/ids.json',
method: 'get',
data: '?client_id=0',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/billable_matters/ids.json?client_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/billable_matters/ids.json',
params: {
'client_id' => 'integer(int32)'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/billable_matters/ids.json', params={
'client_id': '0'
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/billable_matters/ids.json?client_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /billable_matters/ids.json
Returns the unique identifiers of all BillableMatter
This data is retrieved asynchronously
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| client_id | query | integer(int32) | true | The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the BillableMatter records with the matching property. |
| custom_field_values | query | string | false | Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or, |
| end_date | query | string(date) | false | Filter BillableMatter records to those that have matters with unbilled activities on or before this date (Expects an ISO-8601 date). |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of BillableMatter records to be returned. Limit can range between 1 and 200. Default: 200. |
| matter_id | query | integer(int32) | false | The unique identifier for a single Matter. The keyword null is not valid for this field. The list will be filtered to include only the BillableMatter records with the matching property. |
| originating_attorney_id | query | integer(int32) | false | The unique identifier for a single User. Use the keyword null to match those without a BillableMatter. The list will be filtered to include only the BillableMatter records with the matching property. |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| query | query | string | false | Wildcard search for display_number or number or description matching a given string. |
| responsible_attorney_id | query | integer(int32) | false | The unique identifier for a single User. Use the keyword null to match those without a BillableMatter. The list will be filtered to include only the BillableMatter records with the matching property. |
| start_date | query | string(date) | false | Filter BillableMatter records to those that have matters with unbilled activities on or after this date (Expects an ISO-8601 date). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
custom_field_values: Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or,
if the value type only supports one operator, the supported operator is used. In the latter case, no check for operator is performed on the input string.
The key for the custom field value filter is the custom_field.id. e.g. custom_field_values[12345]
If an operator is used for a type that does not support it, an 400 Bad Request is returned.
Supported operators:
* checkbox, contact, matter, picklist : =
e.g. ?custom_field_values[1]=42
currency,date,time,numeric:=,<,>,<=,>=
e.g. ?custom_field_values[1]=>=105.4
email,text_area,text_line,url:=
e.g. ?custom_field_values[1]=url_encoded
Multiple conditions for the same custom field:
If you want to use more than one operator to filter a custom field, you can do so by passing in an array of values.
e.g. ?custom_field_values[1]=[<=50, >=45]
Enumerated Values
| Parameter | Value |
|---|---|
| custom_field_values | = |
| custom_field_values | < |
| custom_field_values | > |
| custom_field_values | <= |
| custom_field_values | >= |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | BillableMatterShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
BillableMatter#index
Code samples
# You can also use wget
curl -X GET /api/v4/billable_matters.json?client_id=0 \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/billable_matters.json?client_id=0 HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/billable_matters.json',
method: 'get',
data: '?client_id=0',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/billable_matters.json?client_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/billable_matters.json',
params: {
'client_id' => 'integer(int32)'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/billable_matters.json', params={
'client_id': '0'
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/billable_matters.json?client_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /billable_matters.json
Return the data for all BillableMatters
Outlines the parameters, optional and required, used when requesting the data for all BillableMatters
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| client_id | query | integer(int32) | true | The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the BillableMatter records with the matching property. |
| custom_field_values | query | string | false | Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or, |
| end_date | query | string(date) | false | Filter BillableMatter records to those that have matters with unbilled activities on or before this date (Expects an ISO-8601 date). |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of BillableMatter records to be returned. Limit can range between 1 and 200. Default: 200. |
| matter_id | query | integer(int32) | false | The unique identifier for a single Matter. The keyword null is not valid for this field. The list will be filtered to include only the BillableMatter records with the matching property. |
| originating_attorney_id | query | integer(int32) | false | The unique identifier for a single User. Use the keyword null to match those without a BillableMatter. The list will be filtered to include only the BillableMatter records with the matching property. |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| query | query | string | false | Wildcard search for display_number or number or description matching a given string. |
| responsible_attorney_id | query | integer(int32) | false | The unique identifier for a single User. Use the keyword null to match those without a BillableMatter. The list will be filtered to include only the BillableMatter records with the matching property. |
| start_date | query | string(date) | false | Filter BillableMatter records to those that have matters with unbilled activities on or after this date (Expects an ISO-8601 date). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
custom_field_values: Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or,
if the value type only supports one operator, the supported operator is used. In the latter case, no check for operator is performed on the input string.
The key for the custom field value filter is the custom_field.id. e.g. custom_field_values[12345]
If an operator is used for a type that does not support it, an 400 Bad Request is returned.
Supported operators:
* checkbox, contact, matter, picklist : =
e.g. ?custom_field_values[1]=42
currency,date,time,numeric:=,<,>,<=,>=
e.g. ?custom_field_values[1]=>=105.4
email,text_area,text_line,url:=
e.g. ?custom_field_values[1]=url_encoded
Multiple conditions for the same custom field:
If you want to use more than one operator to filter a custom field, you can do so by passing in an array of values.
e.g. ?custom_field_values[1]=[<=50, >=45]
Enumerated Values
| Parameter | Value |
|---|---|
| custom_field_values | = |
| custom_field_values | < |
| custom_field_values | > |
| custom_field_values | <= |
| custom_field_values | >= |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | BillableMatterList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Bills
Bills are statements of what a user’s client owes for their services over a particular billing period, including legal fees, expenses, and taxes.
Users customize, preview, edit, and approve bills before sending them to a client.
Bill#preview
Code samples
# You can also use wget
curl -X GET /api/v4/bills/{id}/preview.json \
-H 'Accept: */*'
GET /api/v4/bills/{id}/preview.json HTTP/1.1
Host: null
Accept: */*
var headers = {
'Accept':'*/*'
};
$.ajax({
url: '/api/v4/bills/{id}/preview.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*'
};
fetch('/api/v4/bills/{id}/preview.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*'
}
result = RestClient.get '/api/v4/bills/{id}/preview.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*'
}
r = requests.get('/api/v4/bills/{id}/preview.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/bills/{id}/preview.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /bills/{id}/preview.json
Returns the pre-rendered html for the Bill
This endpoint returns a pre-rendered HTML object that you can use to view a preview of your bills. The HTML provided contains all of the CSS rules it requires to show the bill correctly, as well as the DOCTYPE setting it requires. It's best to use an iframe, or similar object, to render the results of this endpoint. This endpoint does not support bulk actions.
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer(int32) | true | The unique identifier for the Bill. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Bill#index
Code samples
# You can also use wget
curl -X GET /api/v4/bills.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/bills.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/bills.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/bills.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/bills.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/bills.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/bills.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /bills.json
Return the data for all Bills
Outlines the parameters, optional and required, used when requesting the data for all Bills
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| client_id | query | integer(int32) | false | The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the Bill records with the matching property. |
| created_since | query | string(date-time) | false | Filter Bill records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| custom_field_values | query | string | false | Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or, |
| due_after | query | string(date) | false | Filter Bill records to those that have a due_date after the one provided (Expects an ISO-8601 date). |
| due_at | query | string(date) | false | Filter Bill records to those that have a specific due_date (Expects an ISO-8601 date). |
| due_before | query | string(date) | false | Filter Bill records to those that have a due_date before the one provided (Expects an ISO-8601 date). |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| ids[] | query | integer(int32) | false | Filter Bill records to those having the specified unique identifiers |
| limit | query | integer(int32) | false | A limit on the number of Bill records to be returned. Limit can range between 1 and 200. Default: 200. |
| matter_id | query | integer(int32) | false | The unique identifier for a single Matter. Use the keyword null to match those without a Bill. The list will be filtered to include only the Bill records with the matching property. |
| order | query | string | false | Orders the Bill records by the given field. Default: id(asc). |
| originating_attorney_id | query | integer(int32) | false | The unique identifier for a single User. Use the keyword null to match those without a Bill. The list will be filtered to include only the Bill records with the matching property. |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| query | query | integer(int32) | false | Allows matching search on invoice number. |
| responsible_attorney_id | query | integer(int32) | false | The unique identifier for a single User. Use the keyword null to match those without a Bill. The list will be filtered to include only the Bill records with the matching property. |
| state | query | string | false | Filter Bill records to those in a given state. |
| status | query | string | false | Filter Bill records to those with particular payment status. |
| type | query | string | false | Filter Bill records to those of a specific type. |
| updated_since | query | string(date-time) | false | Filter Bill records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
custom_field_values: Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or,
if the value type only supports one operator, the supported operator is used. In the latter case, no check for operator is performed on the input string.
The key for the custom field value filter is the custom_field.id. e.g. custom_field_values[12345]
If an operator is used for a type that does not support it, an 400 Bad Request is returned.
Supported operators:
* checkbox, contact, matter, picklist : =
e.g. ?custom_field_values[1]=42
currency,date,time,numeric:=,<,>,<=,>=
e.g. ?custom_field_values[1]=>=105.4
email,text_area,text_line,url:=
e.g. ?custom_field_values[1]=url_encoded
Multiple conditions for the same custom field:
If you want to use more than one operator to filter a custom field, you can do so by passing in an array of values.
e.g. ?custom_field_values[1]=[<=50, >=45]
Enumerated Values
| Parameter | Value |
|---|---|
| custom_field_values | = |
| custom_field_values | < |
| custom_field_values | > |
| custom_field_values | <= |
| custom_field_values | >= |
| order | id(asc) |
| order | id(desc) |
| order | due_at(asc) |
| order | due_at(desc) |
| order | issued_at(asc) |
| order | issued_at(desc) |
| order | client_name(asc) |
| order | client_name(desc) |
| order | matter_display_number(asc) |
| order | matter_display_number(desc) |
| order | balance(asc) |
| order | balance(desc) |
| order | number(asc) |
| order | number(desc) |
| state | draft |
| state | awaiting_approval |
| state | awaiting_payment |
| state | paid |
| state | void |
| state | deleted |
| status | all |
| status | overdue |
| type | revenue |
| type | trust |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | BillList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Bill#show
Code samples
# You can also use wget
curl -X GET /api/v4/bills/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/bills/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/bills/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/bills/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/bills/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/bills/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/bills/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /bills/{id}.json
Return the data for a single Bill
Outlines the parameters, optional and required, used when requesting the data for a single Bill
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the Bill. |
| navigation.next | query | integer(int32) | false | The id of the next Bill available for viewing |
| navigation.previous | query | integer(int32) | false | The id of the previous Bill available for viewing |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | BillShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Bill#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/bills/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/bills/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/bills/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"bill_theme": {
"id": 0
},
"config": "string",
"currency_id": 0,
"discount": {
"rate": 0,
"type": "percentage",
"note": "string"
},
"due_at": "2018-03-22",
"interest": {
"rate": 0,
"type": "simple",
"period": 0
},
"issued_at": "2018-03-22",
"memo": "string",
"number": "string",
"purchase_order": "string",
"secondary_tax_rate": 0,
"state": "draft",
"subject": "string",
"tax_rate": 0,
"use_grace_period": true
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/bills/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/bills/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/bills/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/bills/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /bills/{id}.json
Update a single Bill
Outlines the parameters and data fields used when updating a single Bill
Body parameter
{
"data": {
"bill_theme": {
"id": 0
},
"config": "string",
"currency_id": 0,
"discount": {
"rate": 0,
"type": "percentage",
"note": "string"
},
"due_at": "2018-03-22",
"interest": {
"rate": 0,
"type": "simple",
"period": 0
},
"issued_at": "2018-03-22",
"memo": "string",
"number": "string",
"purchase_order": "string",
"secondary_tax_rate": 0,
"state": "draft",
"subject": "string",
"tax_rate": 0,
"use_grace_period": true
}
}
data:
bill_theme:
id: 0
config: string
currency_id: 0
discount:
rate: 0
type: percentage
note: string
due_at: '2018-03-22'
interest:
rate: 0
type: simple
period: 0
issued_at: '2018-03-22'
memo: string
number: string
purchase_order: string
secondary_tax_rate: 0
state: draft
subject: string
tax_rate: 0
use_grace_period: true
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the Bill. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» bill_theme | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier of the bill theme applied to the Bill. |
| »» config | body | string | false | A string containing bill theme settings for the Bill preview that are specific to this Bill. |
| »» currency_id | body | integer(int32) | false | ID of the currency applied to the Bill. |
| »» discount | body | object | false | No description |
| »»» rate | body | number(double) | false | Discount amount for the Bill. This can either be a percentage or monetary value, this is determined by the discount[type]. |
| »»» type | body | string | false | The type of discount you are applying to your Bill with the discount[rate]. |
| »»» note | body | string | false | A note for your Bill's discount. |
| »» due_at | body | string(date) | false | Date the Bill is due. If use_grace_period is true, this field is ignored. |
| »» interest | body | object | false | No description |
| »»» rate | body | number(double) | false | Interest amount for the Bill as percentage. |
| »»» type | body | string | false | The type of interest you are applying to your Bill with the interest[rate]. |
| »»» period | body | integer(int32) | false | The interest period for how frequently your Bill will charge interest. |
| »» issued_at | body | string(date) | false | Date the Bill was issued. |
| »» memo | body | string | false | Memo for the Bill. |
| »» number | body | string | false | Bill's number. |
| »» purchase_order | body | string | false | Purchase order information for the Bill. |
| »» secondary_tax_rate | body | number(double) | false | Secondary tax rate as percentage for the Bill. |
| »» state | body | string | false | Bill's state. |
| »» subject | body | string | false | Subject details for the Bill. |
| »» tax_rate | body | number(double) | false | Tax rate as percentage for the Bill |
| »» use_grace_period | body | boolean | false | When true, sets the bill's due date based on the client's grace period. This setting overrides the due_at parameter. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
»» config: A string containing bill theme settings for the Bill preview that are specific to this Bill.
To learn more about available options that you can set in this field, refer to the bill themes documentation.
Values set in this string will override the bill theme settings when displaying this Bill. Any values not present in this string will default to using the settings present in the bill theme for this Bill, or to the default settings for those values if it is also undefined in the bill theme.
Enumerated Values
| Parameter | Value |
|---|---|
| »»» type | percentage |
| »»» type | money |
| »»» type | simple |
| »»» type | compound |
| »» state | draft |
| »» state | awaiting_approval |
| »» state | awaiting_payment |
| »» state | paid |
| »» state | void |
| »» state | deleted |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | BillShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Bill#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/bills/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/bills/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/bills/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/bills/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/bills/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/bills/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/bills/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /bills/{id}.json
Delete or void a Bill
This endpoint will transition a bill to either its deleted or voided state. A bill can only be deleted or voided if it has no payments recorded and its current state is one of the following: * Draft * Pending Approval * Awaiting Payment
A bill will automatically be moved to a deleted or void state based on its current state. The mappings for this are: * Draft -> Deleted * Pending Approval -> Deleted * Awaiting Payment -> Void
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the Bill. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Bulk Actions
API v4 will allow bulk actions for most endpoints. To use bulk actions:
1. Make a request to the action with an X-BULK header with the value true. The response will always be a 202 Accepted.
2. Poll the URL provided in the Location header of the response. This URL is for the Bulk Actions endpoint.
3. Once the action is complete, polling the URL will return a 303 See Other response.
4. Download the response from URL in the Location header of the 303 See other response.
Note: For some bulk actions the parameter format may change slightly
List
The primary use case of using Bulk Actions for a listing endpoint is to remove the need for paging. This is useful if you require a full list of records for situations such as: syncing a full set of data, or creating a report based off the fields and request parameters.
The limit, and the page_token parameters are ignored, otherwise the request parameters are the same as a non-bulk request. The eventual response that is received from step 4 above might look something like:
{
data: [
{ status: 200, data: [ { id: 1 }, { id: 2 } ] }
]
status: 'completed', requested: 1, performed: 1
}
Create
The request parameter format changes slightly for this action. Using contacts as an example, creating multiple records would look something like:
```json
Request
POST /api/v4/contacts.json
{
data: [
{ first_name: "Foo", type: "Person" },
{ type: "Person" }
],
fields: "id,first_name"
}
Eventual Response { data: [ { status: 200, data: { id: 1, first_name: "Foo" } }, { status: 422, error: { message: "At least one of first name or last name must be provided", type: "RecordInvalid" } }, ], status: 'completed', requested: 2, performed: 2 } ```
Update
The request parameter format changes slightly for this action. Using contacts as an example, updating multiple records would look something like:
```json
Request
PATCH /api/v4/contacts.json
{
data: [
{ id: 1, first_name: "Foo" },
{ id: 2, type: "Invalid" }
],
fields: "id,first_name"
}
Eventual Response { data: [ { status: 200, data: { id: 1, first_name: "Foo" } }, { status: 400, error: { message: "type must be one of the follow: 'Company', or 'Person'", type: "ArgumentError" } }, ], status: 'completed', requested: 2, performed: 2 } ```
Destroy
The request parameter format changes slightly for this action. Using contacts as an example, destroying multiple records would look something like:
```json
Request
DELETE /api/v4/contacts.json
{
data: [
{ id: 1 },
{ id: 2 }
]
}
Eventual Response { data: [ { status: 202 }, { status: 202 }, ], status: 'completed', requested: 2, performed: 2 } ```
BulkAction#show
Code samples
# You can also use wget
curl -X GET /api/v4/bulk_actions/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/bulk_actions/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/bulk_actions/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/bulk_actions/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/bulk_actions/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/bulk_actions/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/bulk_actions/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /bulk_actions/{id}.json
Return the data for a single BulkAction
If the bulk action is complete, then it will either a redirect to the completed job otherwise the current status of the incomplete job can be retrieved.
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the BulkAction. |
| ignore_redirect | query | boolean | false | Whether or not the request should ignore the automatic redirect once the BulkAction is complete. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | BulkActionShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Calendar Entries
Calendar Entries are used to track appointments or deadlines. Users can view Calendar Entries on any Calendar that they have “Viewer” or “Editor” permission for. Users can create Calendar Entries on any Calendar that they have “Editor” permission for.
Calendar Update/Deletion Best Practices
- Prior to updating or deleting a calendar entry, check for recurrence.
- If the recurrence_rule parameter is not equal to
null, offer the following 3 options for the update/deletion, as well as the note:- Only this instance: Update/Delete this event, but leave all future events unchanged.
- All following: Updates/Deletes this event and all the future events.
- All events in the series: Updates/Deletes all events in the series.
- Note: If you've modified any future events in this series, those edits will be lost once you make this change.
CalendarEntry#index
Code samples
# You can also use wget
curl -X GET /api/v4/calendar_entries.json?calendar_id=0 \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/calendar_entries.json?calendar_id=0 HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/calendar_entries.json',
method: 'get',
data: '?calendar_id=0',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/calendar_entries.json?calendar_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/calendar_entries.json',
params: {
'calendar_id' => 'integer(int32)'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/calendar_entries.json', params={
'calendar_id': '0'
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/calendar_entries.json?calendar_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /calendar_entries.json
Return the data for all CalendarEntries
Outlines the parameters, optional and required, used when requesting the data for all CalendarEntries
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| calendar_id | query | integer(int32) | true | The unique identifier for a single Calendar. The keyword null is not valid for this field. The list will be filtered to include only the CalendarEntry records with the matching property. |
| created_since | query | string(date-time) | false | Filter CalendarEntry records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| expanded | query | boolean | false | Returns CalendarEntry records in an expanded format. |
| external_property_name | query | string | false | Filter records to only those with the given external property(s) name set. |
| external_property_value | query | string | false | Filter records to only those with the given external property(s) value set. Requires external property name as well. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| from | query | string(date-time) | false | Filter CalendarEntry records to those that end on or after the provided time (Expects an ISO-8601 timestamp). |
| ids[] | query | integer(int32) | false | Filter CalendarEntry records to those having the specified unique identifiers |
| limit | query | integer(int32) | false | A limit on the number of CalendarEntry records to be returned. Limit can range between 1 and 200. Default: 200. |
| matter_id | query | integer(int32) | false | The unique identifier for a single Matter. Use the keyword null to match those without a CalendarEntry. The list will be filtered to include only the CalendarEntry records with the matching property. |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| to | query | string(date-time) | false | Filter CalendarEntry records to those that begin on or before the provided time (Expects an ISO-8601 timestamp). |
| updated_since | query | string(date-time) | false | Filter CalendarEntry records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
external_property_name: Filter records to only those with the given external property(s) name set.
e.g. ?external_property_name=Name
external_property_value: Filter records to only those with the given external property(s) value set. Requires external property name as well.
e.g. ?external_property_name=Name&external_property_value=Value
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | CalendarEntryList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
CalendarEntry#create
Code samples
# You can also use wget
curl -X POST /api/v4/calendar_entries.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/calendar_entries.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/calendar_entries.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"_deleted": "single",
"all_day": true,
"attendees": [
{
"id": 0,
"type": "string",
"_destroy": true
}
],
"calendar_owner": {
"id": 0
},
"description": "string",
"end_at": "2018-03-22T20:30:34Z",
"external_properties": [
{
"name": "string",
"value": "string"
}
],
"location": "string",
"matter": {
"id": 0
},
"recurrence_rule": "string",
"start_at": "2018-03-22T20:30:34Z",
"summary": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/calendar_entries.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/calendar_entries.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/calendar_entries.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/calendar_entries.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /calendar_entries.json
Create a new CalendarEntry
Outlines the parameters and data fields used when creating a new CalendarEntry
Body parameter
{
"data": {
"_deleted": "single",
"all_day": true,
"attendees": [
{
"id": 0,
"type": "string",
"_destroy": true
}
],
"calendar_owner": {
"id": 0
},
"description": "string",
"end_at": "2018-03-22T20:30:34Z",
"external_properties": [
{
"name": "string",
"value": "string"
}
],
"location": "string",
"matter": {
"id": 0
},
"recurrence_rule": "string",
"start_at": "2018-03-22T20:30:34Z",
"summary": "string"
}
}
data:
_deleted: single
all_day: true
attendees:
- id: 0
type: string
_destroy: true
calendar_owner:
id: 0
description: string
end_at: '2018-03-22T20:30:34Z'
external_properties:
- name: string
value: string
location: string
matter:
id: 0
recurrence_rule: string
start_at: '2018-03-22T20:30:34Z'
summary: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» _deleted | body | string | false | Flag to delete a specific instance of a recurring event. |
| »» all_day | body | boolean | false | Whether or not the CalendarEntry is for all day. |
| »» attendees | body | [object] | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Attendee associated with the CalendarEntry. The keyword null is not valid for this field. Not required for creating new Attendee, but required for updating or deleting existing ones. |
| »»» type | body | string | false | The type of attendee (Calendar, Contact) |
| »»» _destroy | body | boolean | false | Flag to delete a specific attendee. |
| »» calendar_owner | body | object | true | No description |
| »»» id | body | integer(int32) | true | The unique identifier for a single Calendar associated with the CalendarEntry. The keyword null is not valid for this field. |
| »» description | body | string | false | A detailed description of the CalendarEntry. |
| »» end_at | body | string(date-time) | true | The time the CalendarEntry ends (Expects an ISO-8601 timestamp). |
| »» external_properties | body | [object] | false | No description |
| »»» name | body | string | false | The ExternalProperty name. |
| »»» value | body | string | false | The ExternalProperty value. |
| »» location | body | string | false | The geographic location of the CalendarEntry. |
| »» matter | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Matter associated with the CalendarEntry. Use the keyword null to specify no association. |
| »» recurrence_rule | body | string | false | Recurrence rule for expanding recurring CalendarEntry. To convert an existing recurring event to a non-recurring event, '' or null are valid values. |
| »» start_at | body | string(date-time) | true | The time the CalendarEntry starts (Expects an ISO-8601 timestamp). |
| »» summary | body | string | true | A short summary of the CalendarEntry. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »» _deleted | single |
| »» _deleted | future |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | CalendarEntryShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
CalendarEntry#show
Code samples
# You can also use wget
curl -X GET /api/v4/calendar_entries/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/calendar_entries/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/calendar_entries/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/calendar_entries/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/calendar_entries/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/calendar_entries/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/calendar_entries/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /calendar_entries/{id}.json
Return the data for a single CalendarEntry
Outlines the parameters, optional and required, used when requesting the data for a single CalendarEntry
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the CalendarEntry. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | CalendarEntryShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
CalendarEntry#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/calendar_entries/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/calendar_entries/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/calendar_entries/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"_deleted": "single",
"all_day": true,
"attendees": [
{
"id": 0,
"type": "string",
"_destroy": true
}
],
"calendar_owner": {
"id": 0
},
"description": "string",
"end_at": "2018-03-22T20:30:34Z",
"external_properties": [
{
"id": 0,
"name": "string",
"value": "string",
"_destroy": true
}
],
"location": "string",
"matter": {
"id": 0
},
"recurrence_rule": "string",
"start_at": "2018-03-22T20:30:34Z",
"summary": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/calendar_entries/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/calendar_entries/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/calendar_entries/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/calendar_entries/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /calendar_entries/{id}.json
Update a single CalendarEntry
Outlines the parameters and data fields used when updating a single CalendarEntry
Body parameter
{
"data": {
"_deleted": "single",
"all_day": true,
"attendees": [
{
"id": 0,
"type": "string",
"_destroy": true
}
],
"calendar_owner": {
"id": 0
},
"description": "string",
"end_at": "2018-03-22T20:30:34Z",
"external_properties": [
{
"id": 0,
"name": "string",
"value": "string",
"_destroy": true
}
],
"location": "string",
"matter": {
"id": 0
},
"recurrence_rule": "string",
"start_at": "2018-03-22T20:30:34Z",
"summary": "string"
}
}
data:
_deleted: single
all_day: true
attendees:
- id: 0
type: string
_destroy: true
calendar_owner:
id: 0
description: string
end_at: '2018-03-22T20:30:34Z'
external_properties:
- id: 0
name: string
value: string
_destroy: true
location: string
matter:
id: 0
recurrence_rule: string
start_at: '2018-03-22T20:30:34Z'
summary: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the CalendarEntry. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» _deleted | body | string | false | Flag to delete a specific instance of a recurring event. |
| »» all_day | body | boolean | false | Whether or not the CalendarEntry is for all day. |
| »» attendees | body | [object] | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Attendee associated with the CalendarEntry. The keyword null is not valid for this field. Not required for creating new Attendee, but required for updating or deleting existing ones. |
| »»» type | body | string | false | The type of attendee (Calendar, Contact) |
| »»» _destroy | body | boolean | false | Flag to delete a specific attendee. |
| »» calendar_owner | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Calendar associated with the CalendarEntry. The keyword null is not valid for this field. |
| »» description | body | string | false | A detailed description of the CalendarEntry. |
| »» end_at | body | string(date-time) | false | The time the CalendarEntry ends (Expects an ISO-8601 timestamp). |
| »» external_properties | body | [object] | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single ExternalProperty associated with the CalendarEntry. The keyword null is not valid for this field. |
| »»» name | body | string | false | The ExternalProperty name. |
| »»» value | body | string | false | The ExternalProperty value. |
| »»» _destroy | body | boolean | false | The destroy flag. If the flag is set to true and the unique identifier of the associated ExternalProperty is present, the ExternalProperty is deleted from the CalendarEntry. |
| »» location | body | string | false | The geographic location of the CalendarEntry. |
| »» matter | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Matter associated with the CalendarEntry. Use the keyword null to specify no association. |
| »» recurrence_rule | body | string | false | Recurrence rule for expanding recurring CalendarEntry. To convert an existing recurring event to a non-recurring event, '' or null are valid values. |
| »» start_at | body | string(date-time) | false | The time the CalendarEntry starts (Expects an ISO-8601 timestamp). |
| »» summary | body | string | false | A short summary of the CalendarEntry. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »» _deleted | single |
| »» _deleted | future |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | CalendarEntryShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
CalendarEntry#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/calendar_entries/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/calendar_entries/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/calendar_entries/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/calendar_entries/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/calendar_entries/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/calendar_entries/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/calendar_entries/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /calendar_entries/{id}.json
Delete a single CalendarEntry
Outlines the parameters, optional and required, used when deleting the record for a single CalendarEntry
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the CalendarEntry. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Calendars
Calendars contain Calendar Entries. All Clio accounts contain one firm Calendar ("AccountCalendar"), personal Calendars for each user ("UserCalendar"), and any number of manually created Calendars ("AdhocCalendar"). Calendar sharing settings determine if a Calendar is visible to a User, and if that User is able to create or edit Calendar Entries on that Calendar.
Calendar#index
Code samples
# You can also use wget
curl -X GET /api/v4/calendars.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/calendars.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/calendars.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/calendars.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/calendars.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/calendars.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/calendars.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /calendars.json
Return the data for all Calendars
Outlines the parameters, optional and required, used when requesting the data for all Calendars
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| filter_inactive_users | query | boolean | false | Filter any shared UserCalendar records whose owner is inactive. |
| limit | query | integer(int32) | false | A limit on the number of Calendar records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the Calendar records by the given field. Default: id(asc). |
| owner | query | boolean | false | Filter Calendar records to those that the user owns. |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| type | query | string | false | Filter Calendar records to those of the specified type. |
| visible | query | boolean | false | Filter Calendar records to those that are visible. |
| writeable | query | boolean | false | Filter Calendar records to those which the user can write to. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | name(asc) |
| order | name(desc) |
| order | id(asc) |
| order | id(desc) |
| type | AccountCalendar |
| type | AdhocCalendar |
| type | UserCalendar |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | CalendarList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Calendar#create
Code samples
# You can also use wget
curl -X POST /api/v4/calendars.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/calendars.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/calendars.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"color": "#6690ff",
"name": "string",
"visible": true
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/calendars.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/calendars.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/calendars.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/calendars.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /calendars.json
Create a new Calendar
Outlines the parameters and data fields used when creating a new Calendar
Body parameter
{
"data": {
"color": "#6690ff",
"name": "string",
"visible": true
}
}
data:
color: '#6690ff'
name: string
visible: true
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» color | body | string | false | Calendar color as seen in the Clio Web UI. |
| »» name | body | string | true | Calendar name. |
| »» visible | body | boolean | false | Whether or not the Calendar should be visible by default in the Clio Web UI. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »» color | #6690ff |
| »» color | #f95957 |
| »» color | #209412 |
| »» color | #ff7715 |
| »» color | #ce85ca |
| »» color | #c69000 |
| »» color | #00ceff |
| »» color | #00b177 |
| »» color | #50d19b |
| »» color | #f14a8c |
| »» color | #afb12a |
| »» color | #84ab3b |
| »» color | #b091ee |
| »» color | #bd9e69 |
| »» color | #f2a000 |
| »» color | #00a5ca |
| »» color | #cb5a3d |
| »» color | #959cd0 |
| »» color | #b0b0b0 |
| »» color | #7ba6cd |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | CalendarShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Calendar#show
Code samples
# You can also use wget
curl -X GET /api/v4/calendars/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/calendars/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/calendars/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/calendars/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/calendars/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/calendars/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/calendars/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /calendars/{id}.json
Return the data for a single Calendar
Outlines the parameters, optional and required, used when requesting the data for a single Calendar
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the Calendar. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | CalendarShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Calendar#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/calendars/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/calendars/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/calendars/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"color": "#6690ff",
"name": "string",
"visible": true
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/calendars/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/calendars/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/calendars/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/calendars/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /calendars/{id}.json
Update a single Calendar
Outlines the parameters and data fields used when updating a single Calendar
Body parameter
{
"data": {
"color": "#6690ff",
"name": "string",
"visible": true
}
}
data:
color: '#6690ff'
name: string
visible: true
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the Calendar. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» color | body | string | false | Calendar color as seen in the Clio Web UI. |
| »» name | body | string | false | Calendar name. |
| »» visible | body | boolean | false | Whether or not the Calendar should be visible by default in the Clio Web UI. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »» color | #6690ff |
| »» color | #f95957 |
| »» color | #209412 |
| »» color | #ff7715 |
| »» color | #ce85ca |
| »» color | #c69000 |
| »» color | #00ceff |
| »» color | #00b177 |
| »» color | #50d19b |
| »» color | #f14a8c |
| »» color | #afb12a |
| »» color | #84ab3b |
| »» color | #b091ee |
| »» color | #bd9e69 |
| »» color | #f2a000 |
| »» color | #00a5ca |
| »» color | #cb5a3d |
| »» color | #959cd0 |
| »» color | #b0b0b0 |
| »» color | #7ba6cd |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | CalendarShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Calendar#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/calendars/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/calendars/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/calendars/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/calendars/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/calendars/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/calendars/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/calendars/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /calendars/{id}.json
Delete a single Calendar
Outlines the parameters, optional and required, used when deleting the record for a single Calendar
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the Calendar. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Communications
Users can view all logged phone calls and emails under the Communications tab in Clio. This is also where they can use Clio Secure Messages.
Communications can be filtered to show those attached to certain Matters or dates, or to show those with or without time entries.
Communication#index
Code samples
# You can also use wget
curl -X GET /api/v4/communications.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/communications.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/communications.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/communications.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/communications.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/communications.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/communications.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /communications.json
Return the data for all Communications
Outlines the parameters, optional and required, used when requesting the data for all Communications
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| contact_id | query | integer(int32) | false | The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the Communication records with the matching property. |
| date | query | string(date) | false | Filter Communication records to those that occur on the specified date (Expects an ISO-8601 date). |
| external_property_name | query | string | false | Filter records to only those with the given external property(s) name set. |
| external_property_value | query | string | false | Filter records to only those with the given external property(s) value set. Requires external property name as well. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| having_time_entries | query | boolean | false | Filter Communication records to those that do or do not have time entries. |
| limit | query | integer(int32) | false | A limit on the number of Communication records to be returned. Limit can range between 1 and 200. Default: 200. |
| matter_id | query | integer(int32) | false | The unique identifier for a single Matter. Use the keyword null to match those without a Communication. The list will be filtered to include only the Communication records with the matching property. |
| order | query | string | false | Orders the Communication records by the given field. Default: date(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| query | query | string | false | Wildcard search for body or subject matching a given string. |
| type | query | string | false | Filter Communication records to those of the specified type. |
| user_id | query | integer(int32) | false | The unique identifier for a single User. The keyword null is not valid for this field. The list will be filtered to include only the Communication records with the matching property. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
external_property_name: Filter records to only those with the given external property(s) name set.
e.g. ?external_property_name=Name
external_property_value: Filter records to only those with the given external property(s) value set. Requires external property name as well.
e.g. ?external_property_name=Name&external_property_value=Value
Enumerated Values
| Parameter | Value |
|---|---|
| order | date(asc) |
| order | date(desc) |
| type | EmailCommunication |
| type | PhoneCommunication |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | CommunicationList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Communication#create
Code samples
# You can also use wget
curl -X POST /api/v4/communications.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/communications.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/communications.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"body": "string",
"date": "string",
"external_properties": [
{
"name": "string",
"value": "string"
}
],
"matter": {
"id": 0
},
"receivers": [
{
"id": 0,
"type": "User",
"_deleted": true
}
],
"senders": [
{
"id": 0,
"type": "User",
"_deleted": true
}
],
"subject": "string",
"type": "PhoneCommunication"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/communications.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/communications.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/communications.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/communications.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /communications.json
Create a new Communication
Outlines the parameters and data fields used when creating a new Communication
Body parameter
{
"data": {
"body": "string",
"date": "string",
"external_properties": [
{
"name": "string",
"value": "string"
}
],
"matter": {
"id": 0
},
"receivers": [
{
"id": 0,
"type": "User",
"_deleted": true
}
],
"senders": [
{
"id": 0,
"type": "User",
"_deleted": true
}
],
"subject": "string",
"type": "PhoneCommunication"
}
}
data:
body: string
date: string
external_properties:
- name: string
value: string
matter:
id: 0
receivers:
- id: 0
type: User
_deleted: true
senders:
- id: 0
type: User
_deleted: true
subject: string
type: PhoneCommunication
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» body | body | string | true | The body value. |
| »» date | body | string | false | The date for the Communication. (Expects an ISO-8601 date). |
| »» external_properties | body | [object] | false | No description |
| »»» name | body | string | false | The ExternalProperty name. |
| »»» value | body | string | false | The ExternalProperty value. |
| »» matter | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Matter associated with the Communication. The keyword null is not valid for this field. |
| »» receivers | body | [object] | false | No description |
| »»» id | body | integer(int32) | false | Unique ids for the receivers of this Communication. |
| »»» type | body | string | false | Types of the receivers of this Communication. |
| »»» _deleted | body | boolean | false | Whether or not the receivers should be deleted. |
| »» senders | body | [object] | false | No description |
| »»» id | body | integer(int32) | false | Unique ids for the senders of this Communication. |
| »»» type | body | string | false | Types of the senders of this Communication. |
| »»» _deleted | body | boolean | false | Whether or not the senders should be deleted. |
| »» subject | body | string | true | The subject value. |
| »» type | body | string | true | Type of the Communication. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »»» type | User |
| »»» type | Contact |
| »»» type | User |
| »»» type | Contact |
| »» type | PhoneCommunication |
| »» type | EmailCommunication |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | CommunicationShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Communication#show
Code samples
# You can also use wget
curl -X GET /api/v4/communications/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/communications/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/communications/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/communications/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/communications/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/communications/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/communications/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /communications/{id}.json
Return the data for a single Communication
Outlines the parameters, optional and required, used when requesting the data for a single Communication
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the Communication. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | CommunicationShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Communication#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/communications/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/communications/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/communications/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"body": "string",
"date": "string",
"external_properties": [
{
"id": 0,
"name": "string",
"value": "string",
"_destroy": true
}
],
"matter": {
"id": 0
},
"receivers": [
{
"id": 0,
"type": "User",
"_deleted": true
}
],
"senders": [
{
"id": 0,
"type": "User",
"_deleted": true
}
],
"subject": "string",
"type": "PhoneCommunication"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/communications/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/communications/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/communications/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/communications/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /communications/{id}.json
Update a single Communication
Outlines the parameters and data fields used when updating a single Communication
Body parameter
{
"data": {
"body": "string",
"date": "string",
"external_properties": [
{
"id": 0,
"name": "string",
"value": "string",
"_destroy": true
}
],
"matter": {
"id": 0
},
"receivers": [
{
"id": 0,
"type": "User",
"_deleted": true
}
],
"senders": [
{
"id": 0,
"type": "User",
"_deleted": true
}
],
"subject": "string",
"type": "PhoneCommunication"
}
}
data:
body: string
date: string
external_properties:
- id: 0
name: string
value: string
_destroy: true
matter:
id: 0
receivers:
- id: 0
type: User
_deleted: true
senders:
- id: 0
type: User
_deleted: true
subject: string
type: PhoneCommunication
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the Communication. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» body | body | string | false | The body value. |
| »» date | body | string | false | The date for the Communication. (Expects an ISO-8601 date). |
| »» external_properties | body | [object] | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single ExternalProperty associated with the Communication. The keyword null is not valid for this field. |
| »»» name | body | string | false | The ExternalProperty name. |
| »»» value | body | string | false | The ExternalProperty value. |
| »»» _destroy | body | boolean | false | The destroy flag. If the flag is set to true and the unique identifier of the associated ExternalProperty is present, the ExternalProperty is deleted from the Communication. |
| »» matter | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Matter associated with the Communication. The keyword null is not valid for this field. |
| »» receivers | body | [object] | false | No description |
| »»» id | body | integer(int32) | false | Unique ids for the receivers of this Communication. |
| »»» type | body | string | false | Types of the receivers of this Communication. |
| »»» _deleted | body | boolean | false | Whether or not the receivers should be deleted. |
| »» senders | body | [object] | false | No description |
| »»» id | body | integer(int32) | false | Unique ids for the senders of this Communication. |
| »»» type | body | string | false | Types of the senders of this Communication. |
| »»» _deleted | body | boolean | false | Whether or not the senders should be deleted. |
| »» subject | body | string | false | The subject value. |
| »» type | body | string | false | Type of the Communication. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »»» type | User |
| »»» type | Contact |
| »»» type | User |
| »»» type | Contact |
| »» type | PhoneCommunication |
| »» type | EmailCommunication |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | CommunicationShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Communication#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/communications/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/communications/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/communications/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/communications/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/communications/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/communications/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/communications/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /communications/{id}.json
Delete a single Communication
Outlines the parameters, optional and required, used when deleting the record for a single Communication
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the Communication. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Contacts
All clients, prospective clients, companies, and external co-counsels can be viewed as Contacts under the Contacts tab in Clio.
Associations
A Contact can be persisted with its associations in a single request. The followings detail the nested attributes to persist the associations.
Addresses
Checkout the sample request to update the Addresses of a Contact:
json
Request
PATCH /api/v4/contacts/1.json
{
data: {
addresses: [
// update
{ id: 1, name: "Work", country: "Canada" },
// create
{ name: "Home", street: "1234 Canada Way", city: "Burnaby", province: "BC", country: "Canada", postal_code: "V1A 1A1" },
// destroy
{ id: 2, _destroy: true }
]
}
Custom Field Values
A CustomFieldValue is an instance of CustomField added to a Contact.
Checkout the sample request to update the CustomFieldValues of a Contact:
json
Request
PATCH /api/v4/contacts/1.json
{
data: {
custom_field_values: [
// update
{ id: 1, custom_field: { id: 1 }, value: 100 },
// create
{ custom_field: { id: 2 }, value: "123-456-7890" },
// destroy
{ id: 2, _destroy: true }
]
}
Email Addresses
Checkout the sample request to update the Email Addresses of a Contact:
json
Request
PATCH /api/v4/contacts/1.json
{
data: {
email_addresses: [
// update
{ id: 1, name: "Work", address: "demo@clio.com" },
// create
{ name: "Home", address: "home@clio.com" },
// destroy
{ id: 2, _destroy: true }
]
}
Instant Messengers
Checkout the sample request to update the Instant Messengers of a Contact:
json
Request
PATCH /api/v4/contacts/1.json
{
data: {
instant_messengers: [
// update
{ id: 1, name: "Work", address: "https://twitter.com/goclio" },
// create
{ name: "Other", address: "https://www.facebook.com/GoClio/" },
// destroy
{ id: 2, _destroy: true }
]
}
Phone Numbers
Checkout the sample request to update the Phone Numbers of a Contact:
json
Request
PATCH /api/v4/contacts/1.json
{
data: {
phone_numbers: [
// update
{ id: 1, name: "Work", number: "123-456-7890" },
// create
{ name: "Other", number: "000-000-0000" },
// destroy
{ id: 2, _destroy: true }
]
}
Web Site
Checkout the sample request to update the Web Site of a Contact:
json
Request
PATCH /api/v4/contacts/1.json
{
data: {
web_sites: [
// update
{ id: 1, name: "Work", address: "https://support.clio.com/" },
// create
{ name: "Other", address: "https://www.clio.com/about/careers/" },
// destroy
{ id: 2, _destroy: true }
]
}
Contact#index
Code samples
# You can also use wget
curl -X GET /api/v4/contacts.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/contacts.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/contacts.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/contacts.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/contacts.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/contacts.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/contacts.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /contacts.json
Return the data for all Contacts
Outlines the parameters, optional and required, used when requesting the data for all Contacts
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| client_only | query | boolean | false | Filter Contact records to those that are clients. |
| clio_connect_only | query | boolean | false | Filter Contact records to those that are Clio Connect users. |
| created_since | query | string(date-time) | false | Filter Contact records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| custom_field_values | query | string | false | Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or, |
| email_only | query | boolean | false | Filter Contact records to those that have email addresses. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| ids[] | query | integer(int32) | false | Filter Contact records to those having the specified unique identifiers |
| initial | query | string | false | Filter Contact records to those where the last name or company name start with the given initial. |
| limit | query | integer(int32) | false | A limit on the number of Contact records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the Contact records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| query | query | string | false | Wildcard search for title, email address, address, phone number, web site, instant messenger, |
| shared_resource_id | query | integer(int32) | false | Filter Contact records to those that currently have access to a given shared resource. |
| type | query | string | false | Filter Contact records to those that match the given type. |
| updated_since | query | string(date-time) | false | Filter Contact records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
custom_field_values: Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or,
if the value type only supports one operator, the supported operator is used. In the latter case, no check for operator is performed on the input string.
The key for the custom field value filter is the custom_field.id. e.g. custom_field_values[12345]
If an operator is used for a type that does not support it, an 400 Bad Request is returned.
Supported operators:
* checkbox, contact, matter, picklist : =
e.g. ?custom_field_values[1]=42
currency,date,time,numeric:=,<,>,<=,>=
e.g. ?custom_field_values[1]=>=105.4
email,text_area,text_line,url:=
e.g. ?custom_field_values[1]=url_encoded
Multiple conditions for the same custom field:
If you want to use more than one operator to filter a custom field, you can do so by passing in an array of values.
e.g. ?custom_field_values[1]=[<=50, >=45]
query: Wildcard search for title, email address, address, phone number, web site, instant messenger, custom fields, related matter name, or company name matching a given string.
Enumerated Values
| Parameter | Value |
|---|---|
| client_only | true, |
| client_only | false |
| clio_connect_only | true |
| clio_connect_only | false |
| custom_field_values | = |
| custom_field_values | < |
| custom_field_values | > |
| custom_field_values | <= |
| custom_field_values | >= |
| email_only | true |
| email_only | false |
| initial | A |
| initial | B |
| initial | C |
| initial | D |
| initial | E |
| initial | F |
| initial | G |
| initial | H |
| initial | I |
| initial | J |
| initial | K |
| initial | L |
| initial | M |
| initial | N |
| initial | O |
| initial | P |
| initial | Q |
| initial | R |
| initial | S |
| initial | T |
| initial | U |
| initial | V |
| initial | W |
| initial | X |
| initial | Y |
| initial | Z |
| order | id(asc) |
| order | id(desc) |
| order | name(asc) |
| order | name(desc) |
| order | shared_at(asc) |
| order | shared_at(desc) |
| type | Company |
| type | Person |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ContactList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Contact#create
Code samples
# You can also use wget
curl -X POST /api/v4/contacts.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/contacts.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/contacts.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"addresses": [
{
"name": "Other",
"street": "string",
"city": "string",
"province": "string",
"postal_code": "string",
"country": "string"
}
],
"custom_field_values": [
{
"value": "string",
"custom_field": {
"id": 0
}
}
],
"email_addresses": [
{
"name": "Other",
"address": "string",
"default_email": true
}
],
"first_name": "string",
"instant_messengers": [
{
"name": "Other",
"address": "string"
}
],
"last_name": "string",
"ledes_client_id": "string",
"name": "string",
"phone_numbers": [
{
"name": "Other",
"number": "string",
"default_number": true
}
],
"prefix": "Mr",
"title": "string",
"type": "Person",
"web_sites": [
{
"name": "Other",
"address": "string"
}
]
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/contacts.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/contacts.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/contacts.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/contacts.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /contacts.json
Create a new Contact
Outlines the parameters and data fields used when creating a new Contact
Body parameter
{
"data": {
"addresses": [
{
"name": "Other",
"street": "string",
"city": "string",
"province": "string",
"postal_code": "string",
"country": "string"
}
],
"custom_field_values": [
{
"value": "string",
"custom_field": {
"id": 0
}
}
],
"email_addresses": [
{
"name": "Other",
"address": "string",
"default_email": true
}
],
"first_name": "string",
"instant_messengers": [
{
"name": "Other",
"address": "string"
}
],
"last_name": "string",
"ledes_client_id": "string",
"name": "string",
"phone_numbers": [
{
"name": "Other",
"number": "string",
"default_number": true
}
],
"prefix": "Mr",
"title": "string",
"type": "Person",
"web_sites": [
{
"name": "Other",
"address": "string"
}
]
}
}
data:
addresses:
- name: Other
street: string
city: string
province: string
postal_code: string
country: string
custom_field_values:
- value: string
custom_field:
id: 0
email_addresses:
- name: Other
address: string
default_email: true
first_name: string
instant_messengers:
- name: Other
address: string
last_name: string
ledes_client_id: string
name: string
phone_numbers:
- name: Other
number: string
default_number: true
prefix: Mr
title: string
type: Person
web_sites:
- name: Other
address: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» addresses | body | [object] | false | No description |
| »»» name | body | string | false | Name of the Address. |
| »»» street | body | string | false | Street. |
| »»» city | body | string | false | City. |
| »»» province | body | string | false | Province or state. |
| »»» postal_code | body | string | false | Postal code or zip code. |
| »»» country | body | string | false | Country |
| »» custom_field_values | body | [object] | false | No description |
| »»» value | body | string | true | The value of the CustomFieldValue. |
| »»» custom_field | body | object | true | No description |
| »»»» id | body | integer(int32) | true | The unique identifier for a single CustomField associated with the CustomFieldValue. The keyword null is not valid for this field. |
| »»» email_addresses | body | [object] | false | No description |
| »»»» name | body | string | false | Name of the EmailAddress. |
| »»»» address | body | string | false | Email address. |
| »»»» default_email | body | boolean | false | Whether or not the Contact should be the default email for the Contact. |
| »»» first_name | body | string | false | First name of the Contact. |
| »»» instant_messengers | body | [object] | false | No description |
| »»»» name | body | string | false | Name of the InstantMessenger. |
| »»»» address | body | string | false | Address of the InstantMessenger. |
| »»» last_name | body | string | false | Last name of the Contact. |
| »»» ledes_client_id | body | string | false | Ledes client id of the Contact. |
| »»» name | body | string | true | Full name of the Contact. |
| »»» phone_numbers | body | [object] | false | No description |
| »»»» name | body | string | false | Name of the PhoneNumber. |
| »»»» number | body | string | false | Phone number. |
| »»»» default_number | body | boolean | false | Whether or not the PhoneNumber should be the default number for the Contact. |
| »»» prefix | body | string | false | Personal title of the Contact. |
| »»» title | body | string | false | Professional title of the Contact. |
| »»» type | body | string | true | Type of the Contact. |
| »»» web_sites | body | [object] | false | No description |
| »»»» name | body | string | false | Name of the WebSite. |
| »»»» address | body | string | false | URL of the WebSite. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »»» name | Work |
| »»» name | Home |
| »»» name | Billing |
| »»» name | Other |
| »»»» name | Work |
| »»»» name | Home |
| »»»» name | Other |
| »»»» name | Work |
| »»»» name | Personal |
| »»»» name | Other |
| »»»» name | Work |
| »»»» name | Home |
| »»»» name | Mobile |
| »»»» name | Fax |
| »»»» name | Pager |
| »»»» name | Skype |
| »»»» name | Other |
| »»» prefix | Mr |
| »»» prefix | Mrs |
| »»» prefix | Ms |
| »»» prefix | Dr |
| »»» prefix | Hon |
| »»» type | Person |
| »»» type | Company |
| »»»» name | Work |
| »»»» name | Personal |
| »»»» name | Other |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | ContactShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Contact#show
Code samples
# You can also use wget
curl -X GET /api/v4/contacts/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/contacts/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/contacts/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/contacts/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/contacts/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/contacts/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/contacts/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /contacts/{id}.json
Return the data for a single Contact
Outlines the parameters, optional and required, used when requesting the data for a single Contact
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the Contact. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ContactShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Contact#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/contacts/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/contacts/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/contacts/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"addresses": [
{
"name": "Other",
"street": "string",
"city": "string",
"province": "string",
"postal_code": "string",
"country": "string",
"id": 0,
"_destroy": true
}
],
"custom_field_values": [
{
"value": "string",
"custom_field": {
"id": 0
},
"id": 0,
"_destroy": true
}
],
"email_addresses": [
{
"id": 0,
"name": "Other",
"address": "string",
"default_email": true,
"_destroy": true
}
],
"first_name": "string",
"instant_messengers": [
{
"name": "Other",
"address": "string",
"id": 0,
"_destroy": true
}
],
"last_name": "string",
"ledes_client_id": "string",
"name": "string",
"phone_numbers": [
{
"name": "Other",
"number": "string",
"default_number": true,
"id": 0,
"_destroy": true
}
],
"prefix": "Mr",
"title": "string",
"type": "Person",
"web_sites": [
{
"name": "Other",
"address": "string",
"id": 0,
"_destroy": true
}
]
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/contacts/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/contacts/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/contacts/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/contacts/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /contacts/{id}.json
Update a single Contact
Outlines the parameters and data fields used when updating a single Contact
Body parameter
{
"data": {
"addresses": [
{
"name": "Other",
"street": "string",
"city": "string",
"province": "string",
"postal_code": "string",
"country": "string",
"id": 0,
"_destroy": true
}
],
"custom_field_values": [
{
"value": "string",
"custom_field": {
"id": 0
},
"id": 0,
"_destroy": true
}
],
"email_addresses": [
{
"id": 0,
"name": "Other",
"address": "string",
"default_email": true,
"_destroy": true
}
],
"first_name": "string",
"instant_messengers": [
{
"name": "Other",
"address": "string",
"id": 0,
"_destroy": true
}
],
"last_name": "string",
"ledes_client_id": "string",
"name": "string",
"phone_numbers": [
{
"name": "Other",
"number": "string",
"default_number": true,
"id": 0,
"_destroy": true
}
],
"prefix": "Mr",
"title": "string",
"type": "Person",
"web_sites": [
{
"name": "Other",
"address": "string",
"id": 0,
"_destroy": true
}
]
}
}
data:
addresses:
- name: Other
street: string
city: string
province: string
postal_code: string
country: string
id: 0
_destroy: true
custom_field_values:
- value: string
custom_field:
id: 0
id: 0
_destroy: true
email_addresses:
- id: 0
name: Other
address: string
default_email: true
_destroy: true
first_name: string
instant_messengers:
- name: Other
address: string
id: 0
_destroy: true
last_name: string
ledes_client_id: string
name: string
phone_numbers:
- name: Other
number: string
default_number: true
id: 0
_destroy: true
prefix: Mr
title: string
type: Person
web_sites:
- name: Other
address: string
id: 0
_destroy: true
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the Contact. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» addresses | body | [object] | false | No description |
| »»» name | body | string | false | Name of the Address. |
| »»» street | body | string | false | Street. |
| »»» city | body | string | false | City. |
| »»» province | body | string | false | Province or state. |
| »»» postal_code | body | string | false | Postal code or zip code. |
| »»» country | body | string | false | Country |
| »»» id | body | integer(int32) | false | The unique identifier for a single Address associated with the Contact. The keyword null is not valid for this field. |
| »»» _destroy | body | boolean | false | The destroy flag. If the flag is set to true and the unique identifier of the associated Address is present, the Address is deleted from the Contact. |
| »» custom_field_values | body | [object] | false | No description |
| »»» value | body | string | false | The value of the CustomFieldValue. |
| »»» custom_field | body | object | false | No description |
| »»»» id | body | integer(int32) | false | The unique identifier for a single CustomField associated with the CustomFieldValue. The keyword null is not valid for this field. |
| »»» id | body | integer(int32) | false | The unique identifier for a single CustomFieldValue associated with the Contact. The keyword null is not valid for this field. |
| »»» _destroy | body | boolean | false | The destroy flag. If the flag is set to true and the unique identifier of the associated CustomFieldValue is present, the CustomFieldValue is deleted from the Contact. |
| »» email_addresses | body | [object] | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single EmailAddress associated with the Contact. The keyword null is not valid for this field. |
| »»» name | body | string | false | Name of the EmailAddress. |
| »»» address | body | string | false | Email address. |
| »»» default_email | body | boolean | false | Whether or not the Contact should be the default email for the Contact. |
| »»» _destroy | body | boolean | false | The destroy flag. If the flag is set to true and the unique identifier of the associated EmailAddress is present, the EmailAddress is deleted from the Contact. |
| »» first_name | body | string | false | First name of the Contact. |
| »» instant_messengers | body | [object] | false | No description |
| »»» name | body | string | false | Name of the InstantMessenger. |
| »»» address | body | string | false | Address of the InstantMessenger. |
| »»» id | body | integer(int32) | false | The unique identifier for a single InstantMessenger associated with the Contact. The keyword null is not valid for this field. |
| »»» _destroy | body | boolean | false | The destroy flag. If the flag is set to true and the unique identifier of the associated InstantMessenger is present, the InstantMessenger is deleted from the Contact. |
| »» last_name | body | string | false | Last name of the Contact. |
| »» ledes_client_id | body | string | false | Ledes client id of the Contact. |
| »» name | body | string | false | Full name of the Contact. |
| »» phone_numbers | body | [object] | false | No description |
| »»» name | body | string | false | Name of the PhoneNumber. |
| »»» number | body | string | false | Phone number. |
| »»» default_number | body | boolean | false | Whether or not the PhoneNumber should be the default number for the Contact. |
| »»» id | body | integer(int32) | false | The unique identifier for a single PhoneNumber associated with the Contact. The keyword null is not valid for this field. |
| »»» _destroy | body | boolean | false | The destroy flag. If the flag is set to true and the unique identifier of the associated PhoneNumber is present, the PhoneNumber is deleted from the Contact. |
| »» prefix | body | string | false | Personal title of the Contact. |
| »» title | body | string | false | Professional title of the Contact. |
| »» type | body | string | false | Type of the Contact. |
| »» web_sites | body | [object] | false | No description |
| »»» name | body | string | false | Name of the WebSite. |
| »»» address | body | string | false | URL of the WebSite. |
| »»» id | body | integer(int32) | false | The unique identifier for a single WebSite associated with the Contact. The keyword null is not valid for this field. |
| »»» _destroy | body | boolean | false | The destroy flag. If the flag is set to true and the unique identifier of the associated WebSite is present, the WebSite is deleted from the Contact. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »»» name | Work |
| »»» name | Home |
| »»» name | Billing |
| »»» name | Other |
| »»» name | Work |
| »»» name | Home |
| »»» name | Other |
| »»» name | Work |
| »»» name | Personal |
| »»» name | Other |
| »»» name | Work |
| »»» name | Home |
| »»» name | Mobile |
| »»» name | Fax |
| »»» name | Pager |
| »»» name | Skype |
| »»» name | Other |
| »» prefix | Mr |
| »» prefix | Mrs |
| »» prefix | Ms |
| »» prefix | Dr |
| »» prefix | Hon |
| »» type | Person |
| »» type | Company |
| »»» name | Work |
| »»» name | Personal |
| »»» name | Other |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ContactShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Contact#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/contacts/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/contacts/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/contacts/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/contacts/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/contacts/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/contacts/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/contacts/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /contacts/{id}.json
Delete a single Contact
Outlines the parameters, optional and required, used when deleting the record for a single Contact
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the Contact. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Conversation Messages
ConversationMessage#index
Code samples
# You can also use wget
curl -X GET /api/v4/conversation_messages.json?conversation_id=0 \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/conversation_messages.json?conversation_id=0 HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/conversation_messages.json',
method: 'get',
data: '?conversation_id=0',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/conversation_messages.json?conversation_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/conversation_messages.json',
params: {
'conversation_id' => 'integer(int32)'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/conversation_messages.json', params={
'conversation_id': '0'
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/conversation_messages.json?conversation_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /conversation_messages.json
Return the data for all ConversationMessages
Outlines the parameters, optional and required, used when requesting the data for all ConversationMessages
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| conversation_id | query | integer(int32) | true | The unique identifier for a single Conversation. Use the keyword null to match those without a ConversationMessage. The list will be filtered to include only the ConversationMessage records with the matching property. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of ConversationMessage records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the ConversationMessage records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| updated_since | query | string(date-time) | false | Filter ConversationMessage records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | id(asc) |
| order | id(desc) |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ConversationMessageList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
ConversationMessage#create
Code samples
# You can also use wget
curl -X POST /api/v4/conversation_messages.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/conversation_messages.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/conversation_messages.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"body": "string",
"conversation": {
"id": 0
},
"matter": {
"id": 0
},
"receivers": [
{
"id": 0,
"type": "Contact"
}
],
"subject": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/conversation_messages.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/conversation_messages.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/conversation_messages.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/conversation_messages.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /conversation_messages.json
Create a new ConversationMessage
Outlines the parameters and data fields used when creating a new ConversationMessage
Body parameter
{
"data": {
"body": "string",
"conversation": {
"id": 0
},
"matter": {
"id": 0
},
"receivers": [
{
"id": 0,
"type": "Contact"
}
],
"subject": "string"
}
}
data:
body: string
conversation:
id: 0
matter:
id: 0
receivers:
- id: 0
type: Contact
subject: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» body | body | string | true | The body value. |
| »» conversation | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Conversation associated with this ConversationMessage. |
| »» matter | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Matter associated with the ConversationMessage. The keyword null is not valid for this field. |
| »» receivers | body | [object] | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single receiver for this ConversationMessage. |
| »»» type | body | string | false | The type for a single receiver for this ConversationMessage, could be Contact or User. |
| »» subject | body | string | false | The subject value. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »»» type | Contact |
| »»» type | User |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | ConversationMessageShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
ConversationMessage#show
Code samples
# You can also use wget
curl -X GET /api/v4/conversation_messages/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/conversation_messages/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/conversation_messages/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/conversation_messages/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/conversation_messages/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/conversation_messages/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/conversation_messages/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /conversation_messages/{id}.json
Return the data for a single ConversationMessage
Outlines the parameters, optional and required, used when requesting the data for a single ConversationMessage
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the ConversationMessage. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ConversationMessageShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Conversations
Conversation#index
Code samples
# You can also use wget
curl -X GET /api/v4/conversations.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/conversations.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/conversations.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/conversations.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/conversations.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/conversations.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/conversations.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /conversations.json
Return the data for all Conversations
Outlines the parameters, optional and required, used when requesting the data for all Conversations
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| archived | query | boolean | false | Filter archived Conversation records. |
| contact_id | query | integer(int32) | false | Filter Conversation records for the contact. |
| date | query | string(date) | false | Filter Conversation records created on a given date. (Expects an ISO-8601 date). |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| for_user | query | boolean | false | If set to true, filter Conversation records accessible to any groups of the user. |
| limit | query | integer(int32) | false | A limit on the number of Conversation records to be returned. Limit can range between 1 and 200. Default: 200. |
| matter_id | query | integer(int32) | false | The unique identifier for a single Matter. Use the keyword null to match those without a Conversation. The list will be filtered to include only the Conversation records with the matching property. |
| order | query | string | false | Orders the Conversation records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| read_status | query | boolean | false | Filter Conversation records to those which have been read. |
| time_entries | query | boolean | false | Filter Conversation records to those with or without associated time entries. |
| updated_since | query | string(date-time) | false | Filter Conversation records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
for_user: If set to true, filter Conversation records accessible to any groups of the user. Note that the user may not be member of the conversations.
If set to false, filter Conversation records of which the user is a member.
Enumerated Values
| Parameter | Value |
|---|---|
| archived | true |
| archived | false |
| for_user | true |
| for_user | false |
| order | last_message_id(asc) |
| order | last_message_id(desc) |
| order | matter_id(asc) |
| order | matter_id(desc) |
| read_status | true |
| read_status | false |
| time_entries | true |
| time_entries | false |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ConversationList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Conversation#show
Code samples
# You can also use wget
curl -X GET /api/v4/conversations/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/conversations/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/conversations/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/conversations/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/conversations/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/conversations/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/conversations/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /conversations/{id}.json
Return the data for a single Conversation
Outlines the parameters, optional and required, used when requesting the data for a single Conversation
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the Conversation. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ConversationShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Conversation#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/conversations/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string'
PATCH /api/v4/conversations/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/conversations/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"archived": true,
"matter": {
"id": 0
},
"read": true
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
fetch('/api/v4/conversations/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string'
}
result = RestClient.patch '/api/v4/conversations/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string'
}
r = requests.patch('/api/v4/conversations/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/conversations/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /conversations/{id}.json
Update a single Conversation
Outlines the parameters and data fields used when updating a single Conversation
Body parameter
{
"data": {
"archived": true,
"matter": {
"id": 0
},
"read": true
}
}
data:
archived: true
matter:
id: 0
read: true
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the Conversation. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» archived | body | boolean | false | Whether or not the Conversation has been archived. |
| »» matter | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Matter associated with the Conversation. The keyword null is not valid for this field. |
| »» read | body | boolean | false | Whether or not the Conversation has been read. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ConversationShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Jurisdictions To Triggers
Jurisdictions-to-Triggers calculates the effective dates of related court and agency rules that a lawyer must do for a Trigger. A Trigger is an activity or event which a lawyer or court does in a jurisdiction.
These activities and events have corresponding deadlines, which the firm must be aware of. These deadlines can be before or after the Trigger. Example Triggers are “Mediation-Session Completed, “Notice of Appeal Filed,” ” or “Settlement Conference.”
Jurisdiction triggers are part of the Court Rules feature, available only for subscribers to Clio’s Elite plan.
Note that only account Administrators can add Court Rules jurisdictions.
JurisdictionsToTrigger#index
Code samples
# You can also use wget
curl -X GET /api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /court_rules/jurisdictions/{jurisdiction_id}/triggers.json
Return the data for all triggers
Outlines the parameters, optional and required, used when requesting the data for all JurisdictionsToTriggers
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| is_requirements_required | query | boolean | false | Filter JurisdictionsToTrigger records to those which require addition requirements to be checked (usually specifying trigger time). |
| is_served | query | boolean | false | Filter JurisdictionsToTrigger records to those which require a service type to be selected. |
| jurisdiction_id | path | integer(int32) | true | The unique identifier for the Jurisdiction. |
| limit | query | integer(int32) | false | A limit on the number of JurisdictionsToTrigger records to be returned. Limit can range between 1 and 200. Default: 200. |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| query | query | string | false | Wildcard search for description matching a given string. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | JurisdictionsToTriggerList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
JurisdictionsToTrigger#show
Code samples
# You can also use wget
curl -X GET /api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /court_rules/jurisdictions/{jurisdiction_id}/triggers/{id}.json
Return the data for the trigger
Outlines the parameters, optional and required, used when requesting the data for a single JurisdictionsToTrigger
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the JurisdictionsToTrigger. |
| jurisdiction_id | path | integer(int32) | true | The unique identifier for the Jurisdiction. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | JurisdictionsToTriggerShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Jurisdictions
There are over 1000 jurisdictions available to choose from when using Court Rules. These jurisdictions contain state, federal, appellate, and bankruptcy courts from across the United States.
Jurisdictions are part of the Court Rules feature, available only for subscribers to Clio’s Elite plan.
Currently Available Jurisdictions
Jurisdiction#index
Code samples
# You can also use wget
curl -X GET /api/v4/court_rules/jurisdictions.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/court_rules/jurisdictions.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/court_rules/jurisdictions.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/court_rules/jurisdictions.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/court_rules/jurisdictions.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/court_rules/jurisdictions.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/court_rules/jurisdictions.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /court_rules/jurisdictions.json
Return the data for all jurisdictions
Outlines the parameters, optional and required, used when requesting the data for all Jurisdictions
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| created_since | query | string(date-time) | false | Filter Jurisdiction records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| for_current_account | query | boolean | false | Filter Jurisdiction records to those set up for this account. |
| ids[] | query | integer(int32) | false | Filter Jurisdiction records to those having the specified unique identifiers |
| limit | query | integer(int32) | false | A limit on the number of Jurisdiction records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the Jurisdiction records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| query | query | string | false | Wildcard search for description matching a given string. |
| updated_since | query | string(date-time) | false | Filter Jurisdiction records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | description(asc) |
| order | description(desc) |
| order | id(asc) |
| order | id(desc) |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | JurisdictionList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Jurisdiction#show
Code samples
# You can also use wget
curl -X GET /api/v4/court_rules/jurisdictions/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/court_rules/jurisdictions/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/court_rules/jurisdictions/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/court_rules/jurisdictions/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/court_rules/jurisdictions/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/court_rules/jurisdictions/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/court_rules/jurisdictions/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /court_rules/jurisdictions/{id}.json
Return the data for the jurisdiction
Outlines the parameters, optional and required, used when requesting the data for a single Jurisdiction
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the Jurisdiction. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | JurisdictionShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Matter Dockets
A Matter Docket connects a Matter with a Court Rule (and all of the Calendar Entries associated with the Court Rule). Matter Dockets are viewable on the Matter Edit screen under the Court Rules heading.
Matter Dockets are part of the Court Rules feature, available only for subscribers to Clio’s Elite plan.
MatterDocket#preview
Code samples
# You can also use wget
curl -X GET /api/v4/court_rules/matter_dockets/preview.json?jurisdiction%5Bid%5D=0&service_type%5Bid%5D=0&start_date=2018-03-22T20%3A30%3A34Z&start_time=2018-03-22T20%3A30%3A34Z&trigger%5Bid%5D=0 \
-H 'Accept: */*'
GET /api/v4/court_rules/matter_dockets/preview.json?jurisdiction%5Bid%5D=0&service_type%5Bid%5D=0&start_date=2018-03-22T20%3A30%3A34Z&start_time=2018-03-22T20%3A30%3A34Z&trigger%5Bid%5D=0 HTTP/1.1
Host: null
Accept: */*
var headers = {
'Accept':'*/*'
};
$.ajax({
url: '/api/v4/court_rules/matter_dockets/preview.json',
method: 'get',
data: '?jurisdiction%5Bid%5D=0&service_type%5Bid%5D=0&start_date=2018-03-22T20%3A30%3A34Z&start_time=2018-03-22T20%3A30%3A34Z&trigger%5Bid%5D=0',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*'
};
fetch('/api/v4/court_rules/matter_dockets/preview.json?jurisdiction%5Bid%5D=0&service_type%5Bid%5D=0&start_date=2018-03-22T20%3A30%3A34Z&start_time=2018-03-22T20%3A30%3A34Z&trigger%5Bid%5D=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*'
}
result = RestClient.get '/api/v4/court_rules/matter_dockets/preview.json',
params: {
'jurisdiction[id]' => 'integer(int32)',
'service_type[id]' => 'integer(int32)',
'start_date' => 'string(date-time)',
'start_time' => 'string(date-time)',
'trigger[id]' => 'integer(int32)'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*'
}
r = requests.get('/api/v4/court_rules/matter_dockets/preview.json', params={
'jurisdiction[id]': '0', 'service_type[id]': '0', 'start_date': '2018-03-22T20:30:34Z', 'start_time': '2018-03-22T20:30:34Z', 'trigger[id]': '0'
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/court_rules/matter_dockets/preview.json?jurisdiction%5Bid%5D=0&service_type%5Bid%5D=0&start_date=2018-03-22T20%3A30%3A34Z&start_time=2018-03-22T20%3A30%3A34Z&trigger%5Bid%5D=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /court_rules/matter_dockets/preview.json
Preview calendar dates for the docket
Preview calendar dates for the docket
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| jurisdiction[id] | query | integer(int32) | true | The unique identifier for a single Jurisdiction. The keyword null is not valid for this field. The list will be filtered to include only the MatterDocket records with the matching property. |
| service_type[id] | query | integer(int32) | true | The unique identifier for a single ServiceType. The keyword null is not valid for this field. The list will be filtered to include only the MatterDocket records with the matching property. |
| start_date | query | string(date-time) | true | The date the MatterDocket should start. (Expects an ISO-8601 date). |
| start_time | query | string(date-time) | true | The time the MatterDocket should start. (Expects an ISO-8601 timestamp). |
| trigger[id] | query | integer(int32) | true | The unique identifier for a single JurisdictionsToTrigger. The keyword null is not valid for this field. The list will be filtered to include only the MatterDocket records with the matching property. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 303 | See Other | See Other | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
MatterDocket#index
Code samples
# You can also use wget
curl -X GET /api/v4/court_rules/matter_dockets.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/court_rules/matter_dockets.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/court_rules/matter_dockets.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/court_rules/matter_dockets.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/court_rules/matter_dockets.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/court_rules/matter_dockets.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/court_rules/matter_dockets.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /court_rules/matter_dockets.json
Return the data for all matter dockets
Outlines the parameters, optional and required, used when requesting the data for all MatterDockets
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of MatterDocket records to be returned. Limit can range between 1 and 200. Default: 200. |
| matter_id | query | integer(int32) | false | The unique identifier for a single Matter. The keyword null is not valid for this field. The list will be filtered to include only the MatterDocket records with the matching property. |
| matter_status | query | string | false | Filter MatterDocket records to those with Matters having a specific status. |
| order | query | string | false | Orders the MatterDocket records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| query | query | string | false | Wildcard search for name matching a given string. |
| service_type_id | query | integer(int32) | false | The unique identifier for a single ServiceType. Use the keyword null to match those without a MatterDocket. The list will be filtered to include only the MatterDocket records with the matching property. |
| status | query | string | false | Filter MatterDocket records to those having a specific status. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| matter_status | open |
| matter_status | closed |
| matter_status | pending |
| order | id(asc) |
| order | id(desc) |
| order | date(asc) |
| order | date(desc) |
| status | not_started, |
| status | in_progress, |
| status | failed, |
| status | completed |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | MatterDocketList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
MatterDocket#create
Code samples
# You can also use wget
curl -X POST /api/v4/court_rules/matter_dockets.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/court_rules/matter_dockets.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/court_rules/matter_dockets.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"name": "string",
"start_date": "2018-03-22",
"start_time": "2018-03-22T20:30:34Z"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/court_rules/matter_dockets.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/court_rules/matter_dockets.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/court_rules/matter_dockets.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/court_rules/matter_dockets.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /court_rules/matter_dockets.json
Creates a matter docket
Outlines the parameters and data fields used when creating a new MatterDocket
Body parameter
{
"data": {
"name": "string",
"start_date": "2018-03-22",
"start_time": "2018-03-22T20:30:34Z"
}
}
data:
name: string
start_date: '2018-03-22'
start_time: '2018-03-22T20:30:34Z'
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» name | body | string | true | Name of the MatterDocket. |
| »» start_date | body | string(date) | true | Start date of the MatterDocket. (Expects an ISO-8601 date). |
| »» start_time | body | string(date-time) | false | Start time of the MatterDocket. Required for some triggers. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | MatterDocketShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
MatterDocket#show
Code samples
# You can also use wget
curl -X GET /api/v4/court_rules/matter_dockets/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/court_rules/matter_dockets/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/court_rules/matter_dockets/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/court_rules/matter_dockets/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/court_rules/matter_dockets/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/court_rules/matter_dockets/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/court_rules/matter_dockets/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /court_rules/matter_dockets/{id}.json
Return the data for the matter docket
Outlines the parameters, optional and required, used when requesting the data for a single MatterDocket
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the MatterDocket. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | MatterDocketShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
MatterDocket#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/court_rules/matter_dockets/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/court_rules/matter_dockets/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/court_rules/matter_dockets/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/court_rules/matter_dockets/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/court_rules/matter_dockets/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/court_rules/matter_dockets/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/court_rules/matter_dockets/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /court_rules/matter_dockets/{id}.json
Deletes the requested matter docket
Outlines the parameters, optional and required, used when deleting the record for a single MatterDocket
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the MatterDocket. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Service Types
Service Types are used when creating new Court Rules involving the delivery of documents. In order to calculate the correct deadline to send the document, an account will specify their Service Type.
Current Service Types; * Express mail outside country * Mail outside country * Personal/hand * Mail outside state * Electronic service * Fax service * Express/Overnight * Regular mail * Electronic service - 0 days
Service Types are part of the Court Rules feature, available only for subscribers to Clio’s Elite plan.
ServiceType#index
Code samples
# You can also use wget
curl -X GET /api/v4/court_rules/service_types.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/court_rules/service_types.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/court_rules/service_types.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/court_rules/service_types.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/court_rules/service_types.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/court_rules/service_types.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/court_rules/service_types.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /court_rules/service_types.json
Return the data for all service types
Outlines the parameters, optional and required, used when requesting the data for all ServiceTypes
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| created_since | query | string(date-time) | false | Filter ServiceType records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| ids[] | query | integer(int32) | false | Filter ServiceType records to those having the specified unique identifiers |
| limit | query | integer(int32) | false | A limit on the number of ServiceType records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the ServiceType records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| updated_since | query | string(date-time) | false | Filter ServiceType records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | description(asc) |
| order | description(desc) |
| order | id(asc) |
| order | id(desc) |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ServiceTypeList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
ServiceType#show
Code samples
# You can also use wget
curl -X GET /api/v4/court_rules/service_types/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/court_rules/service_types/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/court_rules/service_types/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/court_rules/service_types/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/court_rules/service_types/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/court_rules/service_types/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/court_rules/service_types/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /court_rules/service_types/{id}.json
Return the data for the service type
Outlines the parameters, optional and required, used when requesting the data for a single ServiceType
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the ServiceType. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ServiceTypeShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Clio Payments Cards
ClioPaymentsCard#create
Code samples
# You can also use wget
curl -X POST /api/v4/credit_cards.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
POST /api/v4/credit_cards.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/credit_cards.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/credit_cards.json',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.post '/api/v4/credit_cards.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.post('/api/v4/credit_cards.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/credit_cards.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /credit_cards.json
Return the data for a single ClioPaymentsCard
Outlines the parameters, optional and required, used when requesting the data for a single ClioPaymentsCard
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ClioPaymentsCardShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Credit Memos
Credit Memos allow users to write off amounts that clients owe on approved Bills. They can be added in two "ways": when viewing a Bill, or when making a payment on a Bill.
CreditMemo#index
Code samples
# You can also use wget
curl -X GET /api/v4/credit_memos.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/credit_memos.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/credit_memos.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/credit_memos.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/credit_memos.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/credit_memos.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/credit_memos.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /credit_memos.json
Return the data for all CreditMemos
Outlines the parameters, optional and required, used when requesting the data for all CreditMemos
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| contact_id | query | integer(int32) | false | The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the CreditMemo records with the matching property. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of CreditMemo records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the CreditMemo records by the given field. Default: date(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | date(asc) |
| order | date(desc) |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | CreditMemoList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
CreditMemo#show
Code samples
# You can also use wget
curl -X GET /api/v4/credit_memos/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/credit_memos/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/credit_memos/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/credit_memos/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/credit_memos/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/credit_memos/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/credit_memos/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /credit_memos/{id}.json
Return the data for a single CreditMemo
Outlines the parameters, optional and required, used when requesting the data for a single CreditMemo
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the CreditMemo. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | CreditMemoShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Currencies
Currency#index
Code samples
# You can also use wget
curl -X GET /api/v4/currencies.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/currencies.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/currencies.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/currencies.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/currencies.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/currencies.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/currencies.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /currencies.json
Return the data for all Currencies
Outlines the parameters, optional and required, used when requesting the data for all Currencies
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of Currency records to be returned. Limit can range between 1 and 200. Default: 200. |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | CurrencyList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Custom Fields
CustomField#index
Code samples
# You can also use wget
curl -X GET /api/v4/custom_fields.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/custom_fields.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/custom_fields.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/custom_fields.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/custom_fields.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/custom_fields.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/custom_fields.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /custom_fields.json
Return the data for all CustomFields
Outlines the parameters, optional and required, used when requesting the data for all CustomFields
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| created_since | query | string(date-time) | false | Filter CustomField records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| deleted | query | boolean | false | Filter CustomField records to those that have been deleted for future use. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| ids[] | query | integer(int32) | false | Filter CustomField records to those having the specified unique identifiers |
| limit | query | integer(int32) | false | A limit on the number of CustomField records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the CustomField records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| parent_type | query | string | false | Filter CustomField records to those that have the specified parent_type. |
| query | query | string | false | Wildcard search for name matching a given string. |
| updated_since | query | string(date-time) | false | Filter CustomField records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| deleted | true |
| deleted | false |
| order | id(asc) |
| order | id(desc) |
| order | name(asc) |
| order | name(desc) |
| order | display_order(asc) |
| order | display_order(desc) |
| parent_type | matter |
| parent_type | contact |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | CustomFieldList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
CustomField#create
Code samples
# You can also use wget
curl -X POST /api/v4/custom_fields.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/custom_fields.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/custom_fields.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"display_order": 0,
"displayed": "true",
"field_type": "checkbox",
"name": "string",
"parent_type": "Contact",
"picklist_options": [
{
"id": 0,
"option": "string",
"_deleted": true
}
],
"required": "true"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/custom_fields.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/custom_fields.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/custom_fields.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/custom_fields.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /custom_fields.json
Create a new CustomField
Outlines the parameters and data fields used when creating a new CustomField
Body parameter
{
"data": {
"display_order": 0,
"displayed": "true",
"field_type": "checkbox",
"name": "string",
"parent_type": "Contact",
"picklist_options": [
{
"id": 0,
"option": "string",
"_deleted": true
}
],
"required": "true"
}
}
data:
display_order: 0
displayed: 'true'
field_type: checkbox
name: string
parent_type: Contact
picklist_options:
- id: 0
option: string
_deleted: true
required: 'true'
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» display_order | body | integer(int32) | false | The display position of the CustomField. |
| »» displayed | body | boolean | false | Whether or not the CustomField should be displayed by default. |
| »» field_type | body | string | false | Field type of the CustomField. |
| »» name | body | string | true | CustomField name. |
| »» parent_type | body | string | false | Type of object the CustomField is for. |
| »» picklist_options | body | [object] | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single PicklistOption associated with the CustomField. The keyword null is not valid for this field. Not required for creating new PicklistOptions, but required for updating or deleting existing ones. |
| »»» option | body | string | false | The option value. |
| »»» _deleted | body | boolean | false | Whether or not the PicklistOption should be deleted. |
| »» required | body | boolean | false | Whether or not the CustomField should require a value. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »» displayed | true |
| »» displayed | false |
| »» field_type | checkbox |
| »» field_type | contact |
| »» field_type | currency |
| »» field_type | date |
| »» field_type | time |
| »» field_type | |
| »» field_type | matter |
| »» field_type | numeric |
| »» field_type | picklist |
| »» field_type | text_area |
| »» field_type | text_line |
| »» field_type | url |
| »» parent_type | Contact |
| »» parent_type | Matter |
| »» required | true |
| »» required | false |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | CustomFieldShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
CustomField#show
Code samples
# You can also use wget
curl -X GET /api/v4/custom_fields/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/custom_fields/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/custom_fields/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/custom_fields/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/custom_fields/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/custom_fields/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/custom_fields/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /custom_fields/{id}.json
Return the data for a single CustomField
Outlines the parameters, optional and required, used when requesting the data for a single CustomField
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the CustomField. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | CustomFieldShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
CustomField#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/custom_fields/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/custom_fields/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/custom_fields/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"display_order": 0,
"displayed": "true",
"name": "string",
"picklist_options": [
{
"id": 0,
"option": "string",
"_deleted": true
}
],
"required": "true"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/custom_fields/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/custom_fields/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/custom_fields/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/custom_fields/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /custom_fields/{id}.json
Update a single CustomField
Outlines the parameters and data fields used when updating a single CustomField
Body parameter
{
"data": {
"display_order": 0,
"displayed": "true",
"name": "string",
"picklist_options": [
{
"id": 0,
"option": "string",
"_deleted": true
}
],
"required": "true"
}
}
data:
display_order: 0
displayed: 'true'
name: string
picklist_options:
- id: 0
option: string
_deleted: true
required: 'true'
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the CustomField. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» display_order | body | integer(int32) | false | The display position of the CustomField. |
| »» displayed | body | boolean | false | Whether or not the CustomField should be displayed by default. |
| »» name | body | string | false | CustomField name. |
| »» picklist_options | body | [object] | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single PicklistOption associated with the CustomField. The keyword null is not valid for this field. Not required for creating new PicklistOptions, but required for updating or deleting existing ones. |
| »»» option | body | string | false | The option value. |
| »»» _deleted | body | boolean | false | Whether or not the PicklistOption should be deleted. |
| »» required | body | boolean | false | Whether or not the CustomField should require a value. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »» displayed | true |
| »» displayed | false |
| »» required | true |
| »» required | false |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | CustomFieldShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
CustomField#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/custom_fields/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/custom_fields/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/custom_fields/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/custom_fields/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/custom_fields/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/custom_fields/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/custom_fields/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /custom_fields/{id}.json
Delete a single CustomField
Outlines the parameters, optional and required, used when deleting the record for a single CustomField
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the CustomField. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Custom Field Sets
CustomFieldSet#index
Code samples
# You can also use wget
curl -X GET /api/v4/custom_field_sets.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/custom_field_sets.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/custom_field_sets.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/custom_field_sets.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/custom_field_sets.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/custom_field_sets.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/custom_field_sets.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /custom_field_sets.json
Return the data for all CustomFieldSets
Outlines the parameters, optional and required, used when requesting the data for all CustomFieldSets
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of CustomFieldSet records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the CustomFieldSet records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| parent_type | query | string | false | Filter CustomFieldSet records to those that have the specified parent_type. |
| query | query | string | false | Wildcard search for name matching a given string. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | name(asc) |
| order | name(desc) |
| order | id(asc) |
| order | id(desc) |
| order | parent_type(asc) |
| order | parent_type(desc) |
| parent_type | Matter |
| parent_type | Contact |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | CustomFieldSetList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Groups
In Clio, permission levels and Matter permissions are controlled using Groups. All accounts contain an “all users” group, as well as individual groups for each user. Admins always have access to all of the account's groups. Users can also create groups manually in order to precisely manage their permissions.
Group#index
Code samples
# You can also use wget
curl -X GET /api/v4/groups.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/groups.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/groups.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/groups.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/groups.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/groups.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/groups.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /groups.json
Return the data for all Groups
Outlines the parameters, optional and required, used when requesting the data for all Groups
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| account_wide | query | boolean | false | Filter Group records to show all of the account's groups. Defaults to false. Admins will always get the account's groups regardless of the value passed to account_wide. |
| created_since | query | string(date-time) | false | Filter Group records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| ids[] | query | integer(int32) | false | Filter Group records to those having the specified unique identifiers |
| limit | query | integer(int32) | false | A limit on the number of Group records to be returned. Limit can range between 1 and 200. Default: 200. |
| name | query | string | false | Filter Group records to those that match the given name. |
| order | query | string | false | Orders the Group records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| query | query | string | false | Wildcard search for name matching a given string. |
| type | query | string | false | Filter Group records to those that match the given type. |
| updated_since | query | string(date-time) | false | Filter Group records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
| user_id | query | integer(int32) | false | The unique identifier for a single User. The keyword null is not valid for this field. The list will be filtered to include only the Group records with the matching property. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | id(asc) |
| order | id(desc) |
| order | name(asc) |
| order | name(desc) |
| type | AccountGroup |
| type | AdhocGroup |
| type | UserGroup |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | GroupList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Group#create
Code samples
# You can also use wget
curl -X POST /api/v4/groups.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/groups.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/groups.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"name": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/groups.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/groups.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/groups.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/groups.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /groups.json
Create a new Group
Outlines the parameters and data fields used when creating a new Group
Body parameter
{
"data": {
"name": "string"
}
}
data:
name: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | Group_createBody | false | JSON body |
| » data | body | object | true | No description |
| »» name | body | string | false | Name of the Group. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | GroupShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Group#show
Code samples
# You can also use wget
curl -X GET /api/v4/groups/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/groups/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/groups/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/groups/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/groups/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/groups/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/groups/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /groups/{id}.json
Return the data for a single Group
Outlines the parameters, optional and required, used when requesting the data for a single Group
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the Group. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | GroupShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Group#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/groups/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/groups/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/groups/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"name": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/groups/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/groups/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/groups/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/groups/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /groups/{id}.json
Update a single Group
Outlines the parameters and data fields used when updating a single Group
Body parameter
{
"data": {
"name": "string"
}
}
data:
name: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the Group. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | Group_createBody | false | JSON body |
| » data | body | object | true | No description |
| »» name | body | string | false | Name of the Group. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | GroupShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Group#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/groups/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/groups/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/groups/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/groups/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/groups/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/groups/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/groups/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /groups/{id}.json
Delete a single Group
Outlines the parameters, optional and required, used when deleting the record for a single Group
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the Group. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Import Details
ImportDetail#preview
Code samples
# You can also use wget
curl -X GET /api/v4/import_details/{id}/preview.json \
-H 'Accept: */*'
GET /api/v4/import_details/{id}/preview.json HTTP/1.1
Host: null
Accept: */*
var headers = {
'Accept':'*/*'
};
$.ajax({
url: '/api/v4/import_details/{id}/preview.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*'
};
fetch('/api/v4/import_details/{id}/preview.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*'
}
result = RestClient.get '/api/v4/import_details/{id}/preview.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*'
}
r = requests.get('/api/v4/import_details/{id}/preview.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/import_details/{id}/preview.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /import_details/{id}/preview.json
Preview first record of an ImportDetail
Expected response formats are: * Activity * CalendarEntry * Contact * Matter * Note * Relationship * Task
This action does not support bulk actions.
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer(int32) | true | ID of the Import |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Response format dependent on import type | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
ImportDetail#start
Code samples
# You can also use wget
curl -X PATCH /api/v4/import_details/{id}/start.json \
-H 'Accept: */*'
PATCH /api/v4/import_details/{id}/start.json HTTP/1.1
Host: null
Accept: */*
var headers = {
'Accept':'*/*'
};
$.ajax({
url: '/api/v4/import_details/{id}/start.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*'
};
fetch('/api/v4/import_details/{id}/start.json',
{
method: 'PATCH',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*'
}
result = RestClient.patch '/api/v4/import_details/{id}/start.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*'
}
r = requests.patch('/api/v4/import_details/{id}/start.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/import_details/{id}/start.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /import_details/{id}/start.json
Start the ImportDetail
This action does not support bulk actions
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer(int32) | true | The unique identifier for the ImportDetail. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 303 | See Other | See Other | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
ImportDetail#stop
Code samples
# You can also use wget
curl -X PATCH /api/v4/import_details/{id}/stop.json \
-H 'Accept: */*'
PATCH /api/v4/import_details/{id}/stop.json HTTP/1.1
Host: null
Accept: */*
var headers = {
'Accept':'*/*'
};
$.ajax({
url: '/api/v4/import_details/{id}/stop.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*'
};
fetch('/api/v4/import_details/{id}/stop.json',
{
method: 'PATCH',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*'
}
result = RestClient.patch '/api/v4/import_details/{id}/stop.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*'
}
r = requests.patch('/api/v4/import_details/{id}/stop.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/import_details/{id}/stop.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /import_details/{id}/stop.json
Stop the ImportDetail
This action does not support bulk actions
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer(int32) | true | The unique identifier for the ImportDetail. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 303 | See Other | See Other | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
ImportDetail#undo
Code samples
# You can also use wget
curl -X PATCH /api/v4/import_details/{id}/undo.json \
-H 'Accept: */*'
PATCH /api/v4/import_details/{id}/undo.json HTTP/1.1
Host: null
Accept: */*
var headers = {
'Accept':'*/*'
};
$.ajax({
url: '/api/v4/import_details/{id}/undo.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*'
};
fetch('/api/v4/import_details/{id}/undo.json',
{
method: 'PATCH',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*'
}
result = RestClient.patch '/api/v4/import_details/{id}/undo.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*'
}
r = requests.patch('/api/v4/import_details/{id}/undo.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/import_details/{id}/undo.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /import_details/{id}/undo.json
Undo the ImportDetail
This action does not support bulk actions
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer(int32) | true | The unique identifier for the ImportDetail. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 303 | See Other | See Other | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
ImportDetail#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/import_details/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string'
DELETE /api/v4/import_details/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/import_details/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string'
};
fetch('/api/v4/import_details/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string'
}
result = RestClient.delete '/api/v4/import_details/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string'
}
r = requests.delete('/api/v4/import_details/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/import_details/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /import_details/{id}.json
Delete a single ImportDetail
Outlines the parameters, optional and required, used when deleting the record for a single ImportDetail
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the ImportDetail. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
ImportDetail#show
Code samples
# You can also use wget
curl -X GET /api/v4/import_details/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/import_details/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/import_details/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/import_details/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/import_details/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/import_details/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/import_details/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /import_details/{id}.json
Return the data for a single ImportDetail
Outlines the parameters, optional and required, used when requesting the data for a single ImportDetail
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the ImportDetail. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ImportDetailShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
ImportDetail#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/import_details/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string'
PATCH /api/v4/import_details/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/import_details/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data[file]": "string",
"data[file_type]": "csv",
"data[import_mappings][]": "string",
"data[importer_type]": "contact",
"data[mapping_file]": "string",
"data[source]": "custom"
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
fetch('/api/v4/import_details/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string'
}
result = RestClient.patch '/api/v4/import_details/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string'
}
r = requests.patch('/api/v4/import_details/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/import_details/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /import_details/{id}.json
Update a single ImportDetail
Outlines the parameters and data fields used when updating a single ImportDetail
Body parameter
'data[file]': string
'data[file_type]': csv
'data[import_mappings][]': string
'data[importer_type]': contact
'data[mapping_file]': string
'data[source]': custom
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the ImportDetail. |
| body | body | object | false | No description |
| » data[file] | body | string(binary) | false | The ImportDetail file. |
| » data[file_type] | body | string | false | The file type of an ImportDetail. |
| » data[import_mappings][] | body | string | false | An array of hashes where each hash specifies how to map CSV columns to valid fields in Clio. |
| » data[importer_type] | body | string | false | The importer type of an ImportDetail. |
| » data[mapping_file] | body | string(binary) | false | A JSON file consisting of an array of hashes where each hash specifies how to map CSV columns to valid fields in Clio. This parameter will take precedence over the import_mappings parameter. |
| » data[source] | body | string | false | The source of an ImportDetail. |
Enumerated Values
| Parameter | Value |
|---|---|
| » data[file_type] | csv |
| » data[file_type] | ical |
| » data[file_type] | vcard |
| » data[importer_type] | contact |
| » data[importer_type] | note |
| » data[importer_type] | matter |
| » data[importer_type] | activity |
| » data[importer_type] | task |
| » data[importer_type] | relationship |
| » data[importer_type] | calendar_entry |
| » data[source] | custom |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ImportDetailShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
ImportDetail#download_errors
Code samples
# You can also use wget
curl -X GET /api/v4/import_details/{id}/download_errors.json \
-H 'Accept: */*'
GET /api/v4/import_details/{id}/download_errors.json HTTP/1.1
Host: null
Accept: */*
var headers = {
'Accept':'*/*'
};
$.ajax({
url: '/api/v4/import_details/{id}/download_errors.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*'
};
fetch('/api/v4/import_details/{id}/download_errors.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*'
}
result = RestClient.get '/api/v4/import_details/{id}/download_errors.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*'
}
r = requests.get('/api/v4/import_details/{id}/download_errors.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/import_details/{id}/download_errors.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /import_details/{id}/download_errors.json
Download error file of an ImportDetail
This action does not support bulk actions. Error file is only available after an import has been completed.
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer(int32) | true | ID of the Import |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Dependent on import type, currently only CSV is supported. | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
ImportDetail#index
Code samples
# You can also use wget
curl -X GET /api/v4/import_details.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/import_details.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/import_details.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/import_details.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/import_details.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/import_details.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/import_details.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /import_details.json
Return the data for all ImportDetails
Outlines the parameters, optional and required, used when requesting the data for all ImportDetails
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of ImportDetail records to be returned. Limit can range between 1 and 200. Default: 200. |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ImportDetailList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
ImportDetail#create
Code samples
# You can also use wget
curl -X POST /api/v4/import_details.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string'
POST /api/v4/import_details.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/import_details.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data[file]": "string",
"data[file_type]": "csv",
"data[import_mappings][]": "string",
"data[importer_type]": "contact",
"data[mapping_file]": "string",
"data[source]": "custom"
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
fetch('/api/v4/import_details.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string'
}
result = RestClient.post '/api/v4/import_details.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string'
}
r = requests.post('/api/v4/import_details.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/import_details.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /import_details.json
Create a new ImportDetail
Outlines the parameters and data fields used when creating a new ImportDetail
Body parameter
'data[file]': string
'data[file_type]': csv
'data[import_mappings][]': string
'data[importer_type]': contact
'data[mapping_file]': string
'data[source]': custom
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | No description |
| » data[file] | body | string(binary) | true | The ImportDetail file. |
| » data[file_type] | body | string | true | The file type of an ImportDetail. |
| » data[import_mappings][] | body | string | false | An array of hashes where each hash specifies how to map CSV columns to valid fields in Clio. |
| » data[importer_type] | body | string | true | The importer type of an ImportDetail. |
| » data[mapping_file] | body | string(binary) | false | A JSON file consisting of an array of hashes where each hash specifies how to map CSV columns to valid fields in Clio. This parameter will take precedence over the import_mappings parameter. |
| » data[source] | body | string | true | The source of an ImportDetail. |
Enumerated Values
| Parameter | Value |
|---|---|
| » data[file_type] | csv |
| » data[file_type] | ical |
| » data[file_type] | vcard |
| » data[importer_type] | contact |
| » data[importer_type] | note |
| » data[importer_type] | matter |
| » data[importer_type] | activity |
| » data[importer_type] | task |
| » data[importer_type] | relationship |
| » data[importer_type] | calendar_entry |
| » data[source] | custom |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | ImportDetailShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Interest Charges
InterestCharge#index
Code samples
# You can also use wget
curl -X GET /api/v4/interest_charges.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/interest_charges.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/interest_charges.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/interest_charges.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/interest_charges.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/interest_charges.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/interest_charges.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /interest_charges.json
Return the data for all InterestCharges
Outlines the parameters, optional and required, used when requesting the data for all InterestCharges
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| bill_id | query | integer(int32) | false | The unique identifier for a single Bill. The keyword null is not valid for this field. The list will be filtered to include only the InterestCharge records with the matching property. |
| exclude_ids[] | query | integer(int32) | false | Array containing InterestCharge identifiers that should be excluded from the query. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of InterestCharge records to be returned. Limit can range between 1 and 200. Default: 200. |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | InterestChargeList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
InterestCharge#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/interest_charges/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/interest_charges/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/interest_charges/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/interest_charges/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/interest_charges/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/interest_charges/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/interest_charges/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /interest_charges/{id}.json
Delete a single InterestCharge
Outlines the parameters, optional and required, used when deleting the record for a single InterestCharge
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the InterestCharge. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Line Items
LineItem#index
Code samples
# You can also use wget
curl -X GET /api/v4/line_items.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/line_items.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/line_items.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/line_items.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/line_items.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/line_items.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/line_items.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /line_items.json
Return the data for all LineItems
Outlines the parameters, optional and required, used when requesting the data for all LineItems
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| activity_id | query | integer(int32) | false | The unique identifier for a single Activity. Use the keyword null to match those without a LineItem. The list will be filtered to include only the LineItem records with the matching property. |
| bill_id | query | integer(int32) | false | The unique identifier for a single Bill. The keyword null is not valid for this field. The list will be filtered to include only the LineItem records with the matching property. |
| display | query | boolean | false | Set this flag to true to return only LineItems displayed on the bill. |
| exclude_ids[] | query | integer(int32) | false | Array containing LineItem identifiers that should be excluded from the query. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| group_ordering | query | integer(int32) | false | Filters LineItem records to match given group ordering. |
| kind | query | string | false | The kind of LineItem. |
| limit | query | integer(int32) | false | A limit on the number of LineItem records to be returned. Limit can range between 1 and 200. Default: 200. |
| matter_id | query | integer(int32) | false | The unique identifier for a single Matter. Use the keyword null to match those without a LineItem. The list will be filtered to include only the LineItem records with the matching property. |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| query | query | string | false | Wildcard search for description or note matching a given string. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | LineItemList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
LineItem#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/line_items/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/line_items/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/line_items/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"activity": {
"id": 0
},
"bill": {
"id": 0
},
"date": "2018-03-22",
"description": "string",
"discount": {
"rate": 0,
"type": true
},
"group_ordering": 0,
"kind": "Expense",
"matter": {
"id": 0
},
"note": "string",
"price": 0,
"quantity": 0,
"secondary_taxable": true,
"taxable": true,
"update_original_record": true
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/line_items/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/line_items/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/line_items/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/line_items/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /line_items/{id}.json
Update a single LineItem
Outlines the parameters and data fields used when updating a single LineItem
Body parameter
{
"data": {
"activity": {
"id": 0
},
"bill": {
"id": 0
},
"date": "2018-03-22",
"description": "string",
"discount": {
"rate": 0,
"type": true
},
"group_ordering": 0,
"kind": "Expense",
"matter": {
"id": 0
},
"note": "string",
"price": 0,
"quantity": 0,
"secondary_taxable": true,
"taxable": true,
"update_original_record": true
}
}
data:
activity:
id: 0
bill:
id: 0
date: '2018-03-22'
description: string
discount:
rate: 0
type: true
group_ordering: 0
kind: Expense
matter:
id: 0
note: string
price: 0
quantity: 0
secondary_taxable: true
taxable: true
update_original_record: true
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the LineItem. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» activity | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Activity associated with the LineItem. The keyword null is not valid for this field. |
| »» bill | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Bill associated with the LineItem. The keyword null is not valid for this field. |
| »» date | body | string(date) | false | The LineItem date. |
| »» description | body | string | false | Description of the LineItem. |
| »» discount | body | object | false | No description |
| »»» rate | body | number(double) | false | Discount rate for the LineItem. |
| »»» type | body | boolean | false | Discount type. This should be set to one of: 'percentage' or 'money'. |
| »» group_ordering | body | integer(int32) | false | The LineItem group ordering. |
| »» kind | body | string | false | The kind of line_item. |
| »» matter | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Matter associated with the LineItem. The keyword null is not valid for this field. |
| »» note | body | string | false | The note attached to the LineItem. |
| »» price | body | number(double) | false | The price of the LineItem. |
| »» quantity | body | number(double) | false | Quantity of the LineItem. |
| »» secondary_taxable | body | boolean | false | Whether the LineItem is secondary taxable. |
| »» taxable | body | boolean | false | Whether the LineItem taxable. |
| »» update_original_record | body | boolean | false | Whether the associated activity will be updated. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »» kind | Expense |
| »» kind | Service |
| »» kind | Product |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | LineItemShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
LineItem#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/line_items/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/line_items/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/line_items/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/line_items/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/line_items/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/line_items/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/line_items/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /line_items/{id}.json
Delete a single LineItem
A LineItem can not be deleted if it's Bill is not editable
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the LineItem. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Log Entries
Log Entries populate the “Recent” section in the sidebar. The “Recent” section displays the ten Matters and Contacts that the user most recently accessed.
When a user accesses a Contact or a Matter, a Log Entry is created.
LogEntry#index
Code samples
# You can also use wget
curl -X GET /api/v4/log_entries.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/log_entries.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/log_entries.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/log_entries.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/log_entries.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/log_entries.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/log_entries.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /log_entries.json
Return the data for all LogEntries
Outlines the parameters, optional and required, used when requesting the data for all LogEntries
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of LogEntry records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the LogEntry records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | id(asc) |
| order | id(desc) |
| order | accessed_at(asc) |
| order | accessed_at(desc) |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | LogEntryList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Matters
Matters in Clio represent a firm’s cases. All relevant information—Bills, Documents, Time Entries, etc.—are contained in the Matter. A user’s ability to access a Matter is controlled by the Matter Permission settings. A user without permission will be unable to view or update a Matter.
Associations
A Matter can be persisted with its associations in a single request. The followings detail the nested attributes to persist the associations.
Custom Field Values
A CustomFieldValue is an instance of CustomField added to a Matter.
Checkout the sample request to update the CustomFieldValues of a Matter:
json
Request
PATCH /api/v4/matters/1.json
{
data: {
custom_field_values: [
// update
{ id: 1, custom_field: { id: 1 }, value: 100 },
// create
{ custom_field: { id: 2 }, value: "123-456-7890" },
// destroy
{ id: 2, _destroy: true }
]
}
Custom Rates
Each Matter can be set up to be billed on an Hourly basis, Flat Fee basis, or on Contingency.
To set the rate type, assign custom_rate[type] with one of the values, "HourlyRate", "FlatRate" or "ContingencyFee".
By default, a Matter is billed on an hourly basis. If the rate type is modified, the persisted rates will be deleted.
Hourly Rates
Selecting the "HourlyRate" type will record time entries based on the custom hourly rates.
A custom hourly rate can be associated to a User or a Group.
Checkout the sample request to update the hourly rates of a Matter:
json
Request
PATCH /api/v4/matters/1.json
{
data: {
custom_rate: {
type: "HourlyRate",
rates: [
// update a rate for a user
{ id: 1, rate: 100, user: { id: 1 } },
// update a rate for a group
{ id: 2, rate: 100, group: { id: 1 } },
// create a rate for a user
{ rate: 100, user: { id: 2 } },
// create a rate for a group
{ rate: 100, group: { id: 2 } },
// destroy a rate
{ id: 3, _destroy: true }
]
}
}
}
Flat Rate
Selecting the "FlatRate" type will bill the matter with a flat fee. A Matter can only have one flat rate.
For associated objects, you can specify _destroy attribute to delete the rate.
Checkout the sample request to update the flat rate of a Matter:
json
Request
PATCH /api/v4/matters/1.json
{
data: {
custom_rate: {
type: "FlatRate",
rates: [
{
id: 1,
user: { id: 1 },
activity_description: { id: 1 },
rate: 100,
}
]
}
}
}
Contingency Fee
Selecting the "ContingencyFee" type will specify a contingency fee percentage on a Matter and the award or settlement amount won at the completion of the case.
A Matter can only have one definition of contingency fee.
For associated objects, you can specify _destroy attribute to delete the rate.
Contingency Fee Matters are available to subscribers of the Legacy, Boutique, and Elite plans.
Checkout the sample request to update the contingency fee of a Matter:
json
Request
PATCH /api/v4/matters/1.json
{
data: {
custom_rate: {
type: "ContingencyFee",
rates: [
{
id: 1,
user: { id: 1 },
rate: 20,
}
]
}
}
}
Matter Budget
Clio supports tracking a matter budget directly within a Matter.
A Matter can only have one matter budget associated with it.
A matter budget can not be added to flat rate matters.
For associated objects, you can specify the _destroy attribute to delete the Matter Budget.
Matter Budget is only available for subscribers to Clio’s Elite plan.
Checkout the sample request to update the matter budget of a Matter:
json
Request
PATCH /api/v4/matters/1.json
{
data: {
matter_budget: [
budget: 5000000,
include_expenses: true,
notification_threshold: 500,
notify_users: true
users: [
{ id: 1 },
// destroy
{ id: 2, _destroy: true }
]
]
}
}
Relationships
There are people and/or companies related to a Matter other than the client of the lawyer. Clio helps define how the entities relate to a Matter.
Checkout the sample request to update Relationships of a Matter:
json
Request
PATCH /api/v4/matters/1.json
{
data: {
relationships: [
// update
{ id: 1, contact: { id: 1 }, description: "Opposing Counsel" },
// create
{ contact: { id: 2 }, description: "Judge" },
// destroy
{ id: 2, _destroy: true }
]
}
}
Statue Of Limitations
Clio supports to track a Statute of Limitations date directly within a Matter.
It can be associated with reminders as a Task.
A Matter can only have one definition of Statue of Limitations.
For associated objects, you can specify _destroy attribute to delete the Statue of Limitations.
Checkout the sample request to update the Statue of Limitations and its reminders of a Matter:
json
Request
PATCH /api/v4/matters/1.json
{
data: {
statue_of_limitations: [
due_at: "20201231",
status: "open",
reminders: [
// update
{ id: 1, duration_unit: "days", duration_value: 1, notification_method: { id: 1 } },
// create
{ duration_unit: "days", duration_value: 1, notification_method: { id: 2 } },
// destroy
{ id: 2, _destroy: true }
]
]
}
}
Task Template Lists
Clio supports assigning task template lists to a matter from with the same request that creates or updates a matter. Please note that a task template list can only be assigned. Once a task template list is assigned, it cannot be modified or destroyed.
Checkout the sample request to assign a task template list id to a matter:
Request
PATCH /api/v4/matters/1.json
{
data: {
task_template_list_instances: [
{
notify_assignees: true,
task_template_list: {id: 1},
},
{
notify_assignees: false,
task_template_list: {id: 2},
}
],
}
}
Matter#ids
Code samples
# You can also use wget
curl -X GET /api/v4/matters/ids.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string'
GET /api/v4/matters/ids.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/matters/ids.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string'
};
fetch('/api/v4/matters/ids.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/matters/ids.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/matters/ids.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/matters/ids.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /matters/ids.json
Returns the unique identifiers of all Matter
This data is retrieved asynchronously
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| key | query | string | false | If the key is not present, an asynchronous job will be enqueued and a 202 Accepted response will be returned. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | None |
| 202 | Accepted | Accepted | None |
| 404 | Not Found | Not Found | Error |
Matter#index
Code samples
# You can also use wget
curl -X GET /api/v4/matters.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/matters.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/matters.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/matters.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/matters.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/matters.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/matters.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /matters.json
Return the data for all Matters
Outlines the parameters, optional and required, used when requesting the data for all Matters
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| billable | query | boolean | false | Filter Matter records to those which are billable. |
| client_id | query | integer(int32) | false | The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the Matter records with the matching property. |
| created_since | query | string(date-time) | false | Filter Matter records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| custom_field_ids[] | query | integer(int32) | false | Filter Matter's custom_field_values to only include values for the given custom field unique identifiers. |
| custom_field_values | query | string | false | Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or, |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| group_id | query | integer(int32) | false | The unique identifier for a single Group. The keyword null is not valid for this field. The list will be filtered to include only the Matter records with the matching property. |
| ids[] | query | integer(int32) | false | Filter Matter records to those having the specified unique identifiers |
| limit | query | integer(int32) | false | A limit on the number of Matter records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the Matter records by the given field. Default: id(asc). |
| originating_attorney_id | query | integer(int32) | false | The unique identifier for a single User. Use the keyword null to match those without a Matter. The list will be filtered to include only the Matter records with the matching property. |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| practice_area_id | query | integer(int32) | false | The unique identifier for a single PracticeArea. The keyword null is not valid for this field. The list will be filtered to include only the Matter records with the matching property. |
| query | query | string | false | Wildcard search for display_number, number or description matching a given string, as well as the first_name, last_name or name of the associated client. |
| responsible_attorney_id | query | integer(int32) | false | The unique identifier for a single User. Use the keyword null to match those without a Matter. The list will be filtered to include only the Matter records with the matching property. |
| status | query | string | false | Filter Matter records to those with a given status. It accepts comma-separated statuses, e.g. open,pending. |
| updated_since | query | string(date-time) | false | Filter Matter records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
custom_field_values: Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or,
if the value type only supports one operator, the supported operator is used. In the latter case, no check for operator is performed on the input string.
The key for the custom field value filter is the custom_field.id. e.g. custom_field_values[12345]
If an operator is used for a type that does not support it, an 400 Bad Request is returned.
Supported operators:
* checkbox, contact, matter, picklist : =
e.g. ?custom_field_values[1]=42
currency,date,time,numeric:=,<,>,<=,>=
e.g. ?custom_field_values[1]=>=105.4
email,text_area,text_line,url:=
e.g. ?custom_field_values[1]=url_encoded
Multiple conditions for the same custom field:
If you want to use more than one operator to filter a custom field, you can do so by passing in an array of values.
e.g. ?custom_field_values[1]=[<=50, >=45]
Enumerated Values
| Parameter | Value |
|---|---|
| billable | true |
| billable | false |
| custom_field_values | = |
| custom_field_values | < |
| custom_field_values | > |
| custom_field_values | <= |
| custom_field_values | >= |
| order | display_number(asc) |
| order | display_number(desc) |
| order | custom_number(asc) |
| order | custom_number(desc) |
| order | id(asc) |
| order | id(desc) |
| order | client.name(asc) |
| order | client.name(desc) |
| order | practice_area.name(asc) |
| order | practice_area.name(desc) |
| order | open_date(asc) |
| order | open_date(desc) |
| order | close_date(asc) |
| order | close_date(desc) |
| order | pending_date(asc) |
| order | pending_date(desc) |
| order | updated_at(asc) |
| order | updated_at(desc) |
| status | open |
| status | closed |
| status | pending |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | MatterList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Matter#create
Code samples
# You can also use wget
curl -X POST /api/v4/matters.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/matters.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/matters.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"billable": true,
"client": {
"id": 0
},
"client_reference": "string",
"close_date": "2018-03-22",
"custom_field_values": [
{
"value": "string",
"custom_field": {
"id": 0
}
}
],
"custom_rate": {
"type": "FlatRate",
"rates": [
{
"user": {
"id": 0
},
"award": 0,
"note": "string",
"date": "2018-03-22",
"rate": 0,
"activity_description": {
"id": 0
},
"group": {
"id": 0
}
}
]
},
"description": "string",
"display_number": "string",
"group": {
"id": 0
},
"location": "string",
"matter_budget": {
"_destroy": true,
"budget": 0,
"include_expenses": true,
"notification_threshold": 0,
"notify_users": true
},
"open_date": "2018-03-22",
"originating_attorney": {
"id": 0
},
"pending_date": "2018-03-22",
"practice_area": {
"id": 0
},
"relationships": [
{
"description": "string",
"contact": {
"id": 0
}
}
],
"reset_matter_number": true,
"responsible_attorney": {
"id": 0
},
"status": "open",
"statute_of_limitations": {
"status": "pending",
"due_at": "2018-03-22",
"reminders": [
{
"duration_value": 0,
"duration_unit": "string",
"notification_method": {
"id": 0
}
}
]
},
"task_template_list_instances": [
{
"notify_assignees": true
}
]
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/matters.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/matters.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/matters.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/matters.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /matters.json
Create a new Matter
Outlines the parameters and data fields used when creating a new Matter
Body parameter
{
"data": {
"billable": true,
"client": {
"id": 0
},
"client_reference": "string",
"close_date": "2018-03-22",
"custom_field_values": [
{
"value": "string",
"custom_field": {
"id": 0
}
}
],
"custom_rate": {
"type": "FlatRate",
"rates": [
{
"user": {
"id": 0
},
"award": 0,
"note": "string",
"date": "2018-03-22",
"rate": 0,
"activity_description": {
"id": 0
},
"group": {
"id": 0
}
}
]
},
"description": "string",
"display_number": "string",
"group": {
"id": 0
},
"location": "string",
"matter_budget": {
"_destroy": true,
"budget": 0,
"include_expenses": true,
"notification_threshold": 0,
"notify_users": true
},
"open_date": "2018-03-22",
"originating_attorney": {
"id": 0
},
"pending_date": "2018-03-22",
"practice_area": {
"id": 0
},
"relationships": [
{
"description": "string",
"contact": {
"id": 0
}
}
],
"reset_matter_number": true,
"responsible_attorney": {
"id": 0
},
"status": "open",
"statute_of_limitations": {
"status": "pending",
"due_at": "2018-03-22",
"reminders": [
{
"duration_value": 0,
"duration_unit": "string",
"notification_method": {
"id": 0
}
}
]
},
"task_template_list_instances": [
{
"notify_assignees": true
}
]
}
}
data:
billable: true
client:
id: 0
client_reference: string
close_date: '2018-03-22'
custom_field_values:
- value: string
custom_field:
id: 0
custom_rate:
type: FlatRate
rates:
- user:
id: 0
award: 0
note: string
date: '2018-03-22'
rate: 0
activity_description:
id: 0
group:
id: 0
description: string
display_number: string
group:
id: 0
location: string
matter_budget:
_destroy: true
budget: 0
include_expenses: true
notification_threshold: 0
notify_users: true
open_date: '2018-03-22'
originating_attorney:
id: 0
pending_date: '2018-03-22'
practice_area:
id: 0
relationships:
- description: string
contact:
id: 0
reset_matter_number: true
responsible_attorney:
id: 0
status: open
statute_of_limitations:
status: pending
due_at: '2018-03-22'
reminders:
- duration_value: 0
duration_unit: string
notification_method:
id: 0
task_template_list_instances:
- notify_assignees: true
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| custom_field_ids[] | query | integer(int32) | false | Filter Matter's custom_field_values to only include values for the given custom field unique identifiers. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» billable | body | boolean | false | Whether or not the matter is billable. |
| »» client | body | object | true | No description |
| »»» id | body | integer(int32) | true | The unique identifier for a single Contact associated with the Matter. The keyword null is not valid for this field. |
| »» client_reference | body | string | false | Client Reference string for external uses. |
| »» close_date | body | string(date) | false | Date the Matter was set to closed. (Expects an ISO-8601 date). |
| »» custom_field_values | body | [object] | false | No description |
| »»» value | body | string | true | The value of the CustomFieldValue. |
| »»» custom_field | body | object | true | No description |
| »»»» id | body | integer(int32) | true | The unique identifier for a single CustomField associated with the CustomFieldValue. The keyword null is not valid for this field. |
| »»» custom_rate | body | object | false | No description |
| »»»» type | body | string | true | The type of custom rate for the Matter. |
| »»»» rates | body | [object] | false | No description |
| »»»»» user | body | object | true | No description |
| »»»»»» id | body | integer(int32) | true | The unique identifier for a single User associated with the Rate. The keyword null is not valid for this field. |
| »»»»» award | body | number(double) | false | The full amount of the award given. Only valid for ContingencyFee. If given as an empty string, it will reset the ContingencyFee into the unawarded state. |
| »»»»» note | body | string | false | Detailed description of the rate. Only valid for ContingencyFee. |
| »»»»» date | body | string(date) | false | The date the rate is for. Only valid for ContingencyFee. (Expects an ISO-8601 date). |
| »»»»» rate | body | number(double) | true | If type is HourlyRate, it is the dollar amount of the custom rate of the User or Group for the Matter. |
| »»»»» activity_description | body | object | false | No description |
| »»»»»» id | body | integer(int32) | false | The unique identifier for a single ActivityDescription associated with the Rate. The keyword null is not valid for this field. |
| »»»»» group | body | object | false | No description |
| »»»»»» id | body | integer(int32) | false | The unique identifier for a single Group associated with the Rate. The keyword null is not valid for this field. |
| »»»»» description | body | string | true | Detailed description of the Matter. |
| »»»»» display_number | body | string | false | Matter reference and label. Depending on the account's manual_matter_numbering setting, this is either read only (generated), or customizable. |
| »»»»» group | body | object | false | No description |
| »»»»»» id | body | integer(int32) | false | The unique identifier for a single Group associated with the Matter. Use the keyword null to specify no association. |
| »»»»» location | body | string | false | Location of the Matter. |
| »»»»» matter_budget | body | object | false | No description |
| »»»»»» _destroy | body | boolean | false | Determines whether the matter budget associated with the matter should be destroyed. Only users with matter budget destroy capabilities can destroy matter budgets. |
| »»»»»» budget | body | number(double) | false | The amount allocated for the matter. |
| »»»»»» include_expenses | body | boolean | false | Determines whether the the budget includes expenses in the calculation. |
| »»»»»» notification_threshold | body | integer(int32) | false | Percentage of the budget when it starts notifying users. |
| »»»»»» notify_users | body | boolean | false | Determine whether to notify users when the matter reaches the notification threshold. |
| »»»»» open_date | body | string(date) | false | Date the Matter was set to open. (Expects an ISO-8601 date). |
| »»»»» originating_attorney | body | object | false | No description |
| »»»»»» id | body | integer(int32) | false | The unique identifier for a single User associated with the Matter. The keyword null is not valid for this field. |
| »»»»» pending_date | body | string(date) | false | Date the Matter was set to pending. (Expects an ISO-8601 date). |
| »»»»» practice_area | body | object | false | No description |
| »»»»»» id | body | integer(int32) | false | The unique identifier for a single PracticeArea associated with the Matter. Use the keyword null to specify no association. |
| »»»»» relationships | body | [object] | false | No description |
| »»»»»» description | body | string | true | Describe the relationship between a Contact and a Matter. |
| »»»»»» contact | body | object | true | No description |
| »»»»»»» id | body | integer(int32) | true | The unique identifier for a single Contact associated with the Relationship. The keyword null is not valid for this field. |
| »»»»»» reset_matter_number | body | boolean | false | Defaults to false. Resets the matter's number based on the account's matter numbering scheme. |
| »»»»»» responsible_attorney | body | object | false | No description |
| »»»»»»» id | body | integer(int32) | false | The unique identifier for a single User associated with the Matter. The keyword null is not valid for this field. |
| »»»»»» status | body | string | false | Matter status. |
| »»»»»» statute_of_limitations | body | object | false | No description |
| »»»»»»» status | body | string | false | The task status of Statue of Limitations. Users without advanced tasks are allowed to select Complete' orPending` only. |
| »»»»»»» due_at | body | string(date) | false | The due date of Statute of Limitations. (Expects an ISO-8601 date). |
| »»»»»»» reminders | body | [object] | false | No description |
| »»»»»»»» duration_value | body | integer(int32) | true | Time measured in duration_unit to remind user before the subject. |
| »»»»»»»» duration_unit | body | string | true | Unit to measure the duration value in. |
| »»»»»»»» notification_method | body | object | true | No description |
| »»»»»»»»» id | body | integer(int32) | true | The unique identifier for a single NotificationMethod associated with the Reminder. The keyword null is not valid for this field. |
| »»»»»»»» task_template_list_instances | body | [object] | false | No description |
| »»»»»»»»» notify_assignees | body | boolean | false | Whether or not task list assignees should be notified when the task list is assigned to a matter. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
»»»»» rate: If type is HourlyRate, it is the dollar amount of the custom rate of the User or Group for the Matter.
If type is FlatRate, it is the dollar amount of the custom flat rate for the Matter.
If type is ContingencyFee, it is the percentage of the contingency fee awarded to the user for the Matter.
Enumerated Values
| Parameter | Value |
|---|---|
| »»»» type | FlatRate |
| »»»» type | HourlyRate |
| »»»» type | ContingencyFee |
| »»»»»» status | open |
| »»»»»» status | closed |
| »»»»»» status | pending |
| »»»»»»» status | pending |
| »»»»»»» status | in_progress |
| »»»»»»» status | in_review |
| »»»»»»» status | complete |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | MatterShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Matter#show
Code samples
# You can also use wget
curl -X GET /api/v4/matters/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/matters/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/matters/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/matters/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/matters/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/matters/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/matters/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /matters/{id}.json
Return the data for a single Matter
Outlines the parameters, optional and required, used when requesting the data for a single Matter
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| custom_field_ids[] | query | integer(int32) | false | Filter Matter's custom_field_values to only include values for the given custom field unique identifiers. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the Matter. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | MatterShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Matter#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/matters/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/matters/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/matters/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"billable": true,
"client": {
"id": 0
},
"client_reference": "string",
"close_date": "2018-03-22",
"custom_field_values": [
{
"value": "string",
"custom_field": {
"id": 0
},
"id": 0,
"_destroy": true
}
],
"custom_rate": {
"type": "FlatRate",
"rates": [
{
"user": {
"id": 0
},
"award": 0,
"note": "string",
"date": "2018-03-22",
"rate": 0,
"id": 0,
"_destroy": true,
"activity_description": {
"id": 0
},
"group": {
"id": 0
}
}
]
},
"description": "string",
"display_number": "string",
"group": {
"id": 0
},
"location": "string",
"matter_budget": {
"_destroy": true,
"budget": 0,
"include_expenses": true,
"notification_threshold": 0,
"notify_users": true
},
"open_date": "2018-03-22",
"originating_attorney": {
"id": 0
},
"pending_date": "2018-03-22",
"practice_area": {
"id": 0
},
"relationships": [
{
"description": "string",
"contact": {
"id": 0
},
"id": 0,
"_destroy": true
}
],
"reset_matter_number": true,
"responsible_attorney": {
"id": 0
},
"status": "open",
"statute_of_limitations": {
"status": "pending",
"due_at": "2018-03-22",
"reminders": [
{
"duration_value": 0,
"duration_unit": "string",
"notification_method": {
"id": 0
},
"id": 0,
"_destroy": true
}
]
},
"task_template_list_instances": [
{
"notify_assignees": true
}
]
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/matters/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/matters/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/matters/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/matters/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /matters/{id}.json
Update a single Matter
Outlines the parameters and data fields used when updating a single Matter
Body parameter
{
"data": {
"billable": true,
"client": {
"id": 0
},
"client_reference": "string",
"close_date": "2018-03-22",
"custom_field_values": [
{
"value": "string",
"custom_field": {
"id": 0
},
"id": 0,
"_destroy": true
}
],
"custom_rate": {
"type": "FlatRate",
"rates": [
{
"user": {
"id": 0
},
"award": 0,
"note": "string",
"date": "2018-03-22",
"rate": 0,
"id": 0,
"_destroy": true,
"activity_description": {
"id": 0
},
"group": {
"id": 0
}
}
]
},
"description": "string",
"display_number": "string",
"group": {
"id": 0
},
"location": "string",
"matter_budget": {
"_destroy": true,
"budget": 0,
"include_expenses": true,
"notification_threshold": 0,
"notify_users": true
},
"open_date": "2018-03-22",
"originating_attorney": {
"id": 0
},
"pending_date": "2018-03-22",
"practice_area": {
"id": 0
},
"relationships": [
{
"description": "string",
"contact": {
"id": 0
},
"id": 0,
"_destroy": true
}
],
"reset_matter_number": true,
"responsible_attorney": {
"id": 0
},
"status": "open",
"statute_of_limitations": {
"status": "pending",
"due_at": "2018-03-22",
"reminders": [
{
"duration_value": 0,
"duration_unit": "string",
"notification_method": {
"id": 0
},
"id": 0,
"_destroy": true
}
]
},
"task_template_list_instances": [
{
"notify_assignees": true
}
]
}
}
data:
billable: true
client:
id: 0
client_reference: string
close_date: '2018-03-22'
custom_field_values:
- value: string
custom_field:
id: 0
id: 0
_destroy: true
custom_rate:
type: FlatRate
rates:
- user:
id: 0
award: 0
note: string
date: '2018-03-22'
rate: 0
id: 0
_destroy: true
activity_description:
id: 0
group:
id: 0
description: string
display_number: string
group:
id: 0
location: string
matter_budget:
_destroy: true
budget: 0
include_expenses: true
notification_threshold: 0
notify_users: true
open_date: '2018-03-22'
originating_attorney:
id: 0
pending_date: '2018-03-22'
practice_area:
id: 0
relationships:
- description: string
contact:
id: 0
id: 0
_destroy: true
reset_matter_number: true
responsible_attorney:
id: 0
status: open
statute_of_limitations:
status: pending
due_at: '2018-03-22'
reminders:
- duration_value: 0
duration_unit: string
notification_method:
id: 0
id: 0
_destroy: true
task_template_list_instances:
- notify_assignees: true
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| custom_field_ids[] | query | integer(int32) | false | Filter Matter's custom_field_values to only include values for the given custom field unique identifiers. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the Matter. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» billable | body | boolean | false | Whether or not the matter is billable. |
| »» client | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Contact associated with the Matter. The keyword null is not valid for this field. |
| »» client_reference | body | string | false | Client Reference string for external uses. |
| »» close_date | body | string(date) | false | Date the Matter was set to closed. (Expects an ISO-8601 date). |
| »» custom_field_values | body | [object] | false | No description |
| »»» value | body | string | false | The value of the CustomFieldValue. |
| »»» custom_field | body | object | false | No description |
| »»»» id | body | integer(int32) | false | The unique identifier for a single CustomField associated with the CustomFieldValue. The keyword null is not valid for this field. |
| »»» id | body | integer(int32) | false | The unique identifier for a single CustomFieldValue associated with the Matter. The keyword null is not valid for this field. |
| »»» _destroy | body | boolean | false | The destroy flag. If the flag is set to true and the unique identifier of the associated CustomFieldValue is present, the CustomFieldValue is deleted from the Matter. |
| »» custom_rate | body | object | false | No description |
| »»» type | body | string | false | The type of custom rate for the Matter. |
| »»» rates | body | [object] | false | No description |
| »»»» user | body | object | false | No description |
| »»»»» id | body | integer(int32) | false | The unique identifier for a single User associated with the Rate. The keyword null is not valid for this field. |
| »»»» award | body | number(double) | false | The full amount of the award given. Only valid for ContingencyFee. If given as an empty string, it will reset the ContingencyFee into the unawarded state. |
| »»»» note | body | string | false | Detailed description of the rate. Only valid for ContingencyFee. |
| »»»» date | body | string(date) | false | The date the rate is for. Only valid for ContingencyFee. (Expects an ISO-8601 date). |
| »»»» rate | body | number(double) | false | If type is HourlyRate, it is the dollar amount of the custom rate of the User or Group for the Matter. |
| »»»» id | body | integer(int32) | false | The unique identifier for a single Rate associated with the Matter. The keyword null is not valid for this field. |
| »»»» _destroy | body | boolean | false | The destroy flag. If the flag is set to true and the unique identifier of the associated Rate is present, the Rate is deleted from the Matter. |
| »»»» activity_description | body | object | false | No description |
| »»»»» id | body | integer(int32) | false | The unique identifier for a single ActivityDescription associated with the Rate. The keyword null is not valid for this field. |
| »»»» group | body | object | false | No description |
| »»»»» id | body | integer(int32) | false | The unique identifier for a single Group associated with the Rate. The keyword null is not valid for this field. |
| »»»» description | body | string | false | Detailed description of the Matter. |
| »»»» display_number | body | string | false | Matter reference and label. Depending on the account's manual_matter_numbering setting, this is either read only (generated), or customizable. |
| »»»» group | body | object | false | No description |
| »»»»» id | body | integer(int32) | false | The unique identifier for a single Group associated with the Matter. Use the keyword null to specify no association. |
| »»»» location | body | string | false | Location of the Matter. |
| »»»» matter_budget | body | object | false | No description |
| »»»»» _destroy | body | boolean | false | Determines whether the matter budget associated with the matter should be destroyed. Only users with matter budget destroy capabilities can destroy matter budgets. |
| »»»»» budget | body | number(double) | false | The amount allocated for the matter. |
| »»»»» include_expenses | body | boolean | false | Determines whether the the budget includes expenses in the calculation. |
| »»»»» notification_threshold | body | integer(int32) | false | Percentage of the budget when it starts notifying users. |
| »»»»» notify_users | body | boolean | false | Determine whether to notify users when the matter reaches the notification threshold. |
| »»»» open_date | body | string(date) | false | Date the Matter was set to open. (Expects an ISO-8601 date). |
| »»»» originating_attorney | body | object | false | No description |
| »»»»» id | body | integer(int32) | false | The unique identifier for a single User associated with the Matter. The keyword null is not valid for this field. |
| »»»» pending_date | body | string(date) | false | Date the Matter was set to pending. (Expects an ISO-8601 date). |
| »»»» practice_area | body | object | false | No description |
| »»»»» id | body | integer(int32) | false | The unique identifier for a single PracticeArea associated with the Matter. Use the keyword null to specify no association. |
| »»»» relationships | body | [object] | false | No description |
| »»»»» description | body | string | false | Describe the relationship between a Contact and a Matter. |
| »»»»» contact | body | object | false | No description |
| »»»»»» id | body | integer(int32) | false | The unique identifier for a single Contact associated with the Relationship. The keyword null is not valid for this field. |
| »»»»» id | body | integer(int32) | false | The unique identifier for a single Relationship associated with the Matter. The keyword null is not valid for this field. |
| »»»»» _destroy | body | boolean | false | The destroy flag. If the flag is set to true and the unique identifier of the associated Relationship is present, the Relationship is deleted from the Matter. |
| »»»» reset_matter_number | body | boolean | false | Defaults to false. Resets the matter's number based on the account's matter numbering scheme. |
| »»»» responsible_attorney | body | object | false | No description |
| »»»»» id | body | integer(int32) | false | The unique identifier for a single User associated with the Matter. The keyword null is not valid for this field. |
| »»»» status | body | string | false | Matter status. |
| »»»» statute_of_limitations | body | object | false | No description |
| »»»»» status | body | string | false | The task status of Statue of Limitations. Users without advanced tasks are allowed to select Complete' orPending` only. |
| »»»»» due_at | body | string(date) | false | The due date of Statute of Limitations. (Expects an ISO-8601 date). |
| »»»»» reminders | body | [object] | false | No description |
| »»»»»» duration_value | body | integer(int32) | false | Time measured in duration_unit to remind user before the subject. |
| »»»»»» duration_unit | body | string | false | Unit to measure the duration value in. |
| »»»»»» notification_method | body | object | false | No description |
| »»»»»»» id | body | integer(int32) | false | The unique identifier for a single NotificationMethod associated with the Reminder. The keyword null is not valid for this field. |
| »»»»»» id | body | integer(int32) | false | The unique identifier for a single Reminder associated with the Matter. The keyword null is not valid for this field. |
| »»»»»» _destroy | body | boolean | false | The destroy flag. If the flag is set to true and the unique identifier of the associated Reminder is present, the Reminder is deleted from the Matter. |
| »»»»» task_template_list_instances | body | [object] | false | No description |
| »»»»»» notify_assignees | body | boolean | false | Whether or not task list assignees should be notified when the task list is assigned to a matter. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
»»»» rate: If type is HourlyRate, it is the dollar amount of the custom rate of the User or Group for the Matter.
If type is FlatRate, it is the dollar amount of the custom flat rate for the Matter.
If type is ContingencyFee, it is the percentage of the contingency fee awarded to the user for the Matter.
Enumerated Values
| Parameter | Value |
|---|---|
| »»» type | FlatRate |
| »»» type | HourlyRate |
| »»» type | ContingencyFee |
| »»»» status | open |
| »»»» status | closed |
| »»»» status | pending |
| »»»»» status | pending |
| »»»»» status | in_progress |
| »»»»» status | in_review |
| »»»»» status | complete |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | MatterShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Matter#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/matters/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/matters/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/matters/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/matters/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/matters/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/matters/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/matters/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /matters/{id}.json
Delete a single Matter
Outlines the parameters, optional and required, used when deleting the record for a single Matter
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the Matter. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Notes
Notes can be added to Matters or Contacts in Clio to record meeting notes, research, or anything else a user might want. The field can hold hundreds of pages, so users can add plenty of information.
Notes can be found either on the Matters or Contacts page under the Notes sub tab.
Note#index
Code samples
# You can also use wget
curl -X GET /api/v4/notes.json?type=Matter \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/notes.json?type=Matter HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/notes.json',
method: 'get',
data: '?type=Matter',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/notes.json?type=Matter',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/notes.json',
params: {
'type' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/notes.json', params={
'type': 'Matter'
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/notes.json?type=Matter");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /notes.json
Return the data for all Notes
Outlines the parameters, optional and required, used when requesting the data for all Notes
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| contact_id | query | integer(int32) | false | The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the Note records with the matching property. |
| created_since | query | string(date-time) | false | Filter Note records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| has_time_entries | query | boolean | false | Filter Note records to those with or without associated time entries. |
| ids[] | query | integer(int32) | false | Filter Note records to those having the specified unique identifiers |
| limit | query | integer(int32) | false | A limit on the number of Note records to be returned. Limit can range between 1 and 200. Default: 200. |
| matter_id | query | integer(int32) | false | The unique identifier for a single Matter. The keyword null is not valid for this field. The list will be filtered to include only the Note records with the matching property. |
| order | query | string | false | Orders the Note records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| query | query | string | false | Wildcard search across note subject and detail. |
| type | query | string | true | Filter Note records to those of the specified type. |
| updated_since | query | string(date-time) | false | Filter Note records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| has_time_entries | true |
| has_time_entries | false |
| order | id(asc) |
| order | id(desc) |
| order | date(asc) |
| order | date(desc) |
| type | Matter |
| type | Contact |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | NoteList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Note#create
Code samples
# You can also use wget
curl -X POST /api/v4/notes.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/notes.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/notes.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"date": "2018-03-22",
"detail": "string",
"subject": "string",
"type": "Matter"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/notes.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/notes.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/notes.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/notes.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /notes.json
Create a new Note
Outlines the parameters and data fields used when creating a new Note
Body parameter
{
"data": {
"date": "2018-03-22",
"detail": "string",
"subject": "string",
"type": "Matter"
}
}
data:
date: '2018-03-22'
detail: string
subject: string
type: Matter
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» date | body | string(date) | false | Date for the Note. (Expects an ISO-8601 date). |
| »» detail | body | string | false | Note body. |
| »» subject | body | string | false | Note subject. |
| »» type | body | string | true | Note type. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »» type | Matter |
| »» type | Contact |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | NoteShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Note#show
Code samples
# You can also use wget
curl -X GET /api/v4/notes/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/notes/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/notes/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/notes/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/notes/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/notes/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/notes/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /notes/{id}.json
Return the data for a single Note
Outlines the parameters, optional and required, used when requesting the data for a single Note
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the Note. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | NoteShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Note#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/notes/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/notes/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/notes/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"date": "2018-03-22",
"detail": "string",
"subject": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/notes/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/notes/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/notes/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/notes/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /notes/{id}.json
Update a single Note
Outlines the parameters and data fields used when updating a single Note
Body parameter
{
"data": {
"date": "2018-03-22",
"detail": "string",
"subject": "string"
}
}
data:
date: '2018-03-22'
detail: string
subject: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the Note. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» date | body | string(date) | false | Date for the Note. (Expects an ISO-8601 date). |
| »» detail | body | string | false | Note body. |
| »» subject | body | string | false | Note subject. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | NoteShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Note#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/notes/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/notes/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/notes/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/notes/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/notes/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/notes/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/notes/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /notes/{id}.json
Delete a single Note
Outlines the parameters, optional and required, used when deleting the record for a single Note
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the Note. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Practice Areas
The practice area field can be added to Matters and used for filtering purposes, or just for reference. Users can create their own practice areas.
Support link Practice areas settings
PracticeArea#index
Code samples
# You can also use wget
curl -X GET /api/v4/practice_areas.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/practice_areas.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/practice_areas.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/practice_areas.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/practice_areas.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/practice_areas.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/practice_areas.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /practice_areas.json
Return the data for all PracticeAreas
Outlines the parameters, optional and required, used when requesting the data for all PracticeAreas
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| code | query | string | false | Filter PracticeArea records to those that match the given code. |
| created_since | query | string(date-time) | false | Filter PracticeArea records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| ids[] | query | integer(int32) | false | Filter PracticeArea records to those having the specified unique identifiers |
| limit | query | integer(int32) | false | A limit on the number of PracticeArea records to be returned. Limit can range between 1 and 200. Default: 200. |
| name | query | string | false | Filter PracticeArea records to those that match the given name. |
| order | query | string | false | Orders the PracticeArea records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| updated_since | query | string(date-time) | false | Filter PracticeArea records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | id(asc) |
| order | id(desc) |
| order | name(asc) |
| order | name(desc) |
| order | code(asc) |
| order | code(desc) |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | PracticeAreaList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
PracticeArea#create
Code samples
# You can also use wget
curl -X POST /api/v4/practice_areas.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/practice_areas.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/practice_areas.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"code": "string",
"name": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/practice_areas.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/practice_areas.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/practice_areas.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/practice_areas.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /practice_areas.json
Create a new PracticeArea
Outlines the parameters and data fields used when creating a new PracticeArea
Body parameter
{
"data": {
"code": "string",
"name": "string"
}
}
data:
code: string
name: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | PracticeArea_createBody | false | JSON body |
| » data | body | object | true | No description |
| »» code | body | string | false | The code attached to the PracticeArea. |
| »» name | body | string | false | Name of the PracticeArea. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | PracticeAreaShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
PracticeArea#show
Code samples
# You can also use wget
curl -X GET /api/v4/practice_areas/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/practice_areas/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/practice_areas/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/practice_areas/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/practice_areas/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/practice_areas/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/practice_areas/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /practice_areas/{id}.json
Return the data for a single PracticeArea
Outlines the parameters, optional and required, used when requesting the data for a single PracticeArea
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the PracticeArea. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | PracticeAreaShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
PracticeArea#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/practice_areas/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/practice_areas/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/practice_areas/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"code": "string",
"name": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/practice_areas/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/practice_areas/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/practice_areas/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/practice_areas/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /practice_areas/{id}.json
Update a single PracticeArea
Outlines the parameters and data fields used when updating a single PracticeArea
Body parameter
{
"data": {
"code": "string",
"name": "string"
}
}
data:
code: string
name: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the PracticeArea. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | PracticeArea_createBody | false | JSON body |
| » data | body | object | true | No description |
| »» code | body | string | false | The code attached to the PracticeArea. |
| »» name | body | string | false | Name of the PracticeArea. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | PracticeAreaShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
PracticeArea#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/practice_areas/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/practice_areas/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/practice_areas/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/practice_areas/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/practice_areas/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/practice_areas/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/practice_areas/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /practice_areas/{id}.json
Delete a single PracticeArea
Outlines the parameters, optional and required, used when deleting the record for a single PracticeArea
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the PracticeArea. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Relationships
Relationships are used on a Matter to track Contacts related to the Matter. Relationships are can be found on the Contacts sub tab of a Matter.
Relationships are used on the Matter detail page under the Contacts tab.
Relationship#index
Code samples
# You can also use wget
curl -X GET /api/v4/relationships.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/relationships.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/relationships.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/relationships.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/relationships.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/relationships.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/relationships.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /relationships.json
Return the data for all Relationships
Outlines the parameters, optional and required, used when requesting the data for all Relationships
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| contact_id | query | integer(int32) | false | The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the Relationship records with the matching property. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of Relationship records to be returned. Limit can range between 1 and 200. Default: 200. |
| matter_id | query | integer(int32) | false | The unique identifier for a single Matter. The keyword null is not valid for this field. The list will be filtered to include only the Relationship records with the matching property. |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | RelationshipList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Relationship#create
Code samples
# You can also use wget
curl -X POST /api/v4/relationships.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/relationships.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/relationships.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"contact": {
"id": 0
},
"description": "string",
"matter": {
"id": 0
}
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/relationships.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/relationships.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/relationships.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/relationships.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /relationships.json
Create a new Relationship
Outlines the parameters and data fields used when creating a new Relationship
Body parameter
{
"data": {
"contact": {
"id": 0
},
"description": "string",
"matter": {
"id": 0
}
}
}
data:
contact:
id: 0
description: string
matter:
id: 0
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | Relationship_createBody | false | JSON body |
| » data | body | object | true | No description |
| »» contact | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Contact associated with the Relationship. The keyword null is not valid for this field. |
| »» description | body | string | false | Describe the relationship between a Contact and a Matter. |
| »» matter | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Matter associated with the Relationship. The keyword null is not valid for this field. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | RelationshipShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Relationship#show
Code samples
# You can also use wget
curl -X GET /api/v4/relationships/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/relationships/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/relationships/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/relationships/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/relationships/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/relationships/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/relationships/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /relationships/{id}.json
Return the data for a single Relationship
Outlines the parameters, optional and required, used when requesting the data for a single Relationship
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the Relationship. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | RelationshipShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Relationship#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/relationships/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/relationships/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/relationships/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"contact": {
"id": 0
},
"description": "string",
"matter": {
"id": 0
}
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/relationships/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/relationships/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/relationships/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/relationships/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /relationships/{id}.json
Update a single Relationship
Outlines the parameters and data fields used when updating a single Relationship
Body parameter
{
"data": {
"contact": {
"id": 0
},
"description": "string",
"matter": {
"id": 0
}
}
}
data:
contact:
id: 0
description: string
matter:
id: 0
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the Relationship. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | Relationship_createBody | false | JSON body |
| » data | body | object | true | No description |
| »» contact | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Contact associated with the Relationship. The keyword null is not valid for this field. |
| »» description | body | string | false | Describe the relationship between a Contact and a Matter. |
| »» matter | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Matter associated with the Relationship. The keyword null is not valid for this field. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | RelationshipShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Relationship#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/relationships/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/relationships/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/relationships/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/relationships/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/relationships/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/relationships/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/relationships/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /relationships/{id}.json
Delete a single Relationship
Outlines the parameters, optional and required, used when deleting the record for a single Relationship
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the Relationship. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Reminders
Reminders can be added to Tasks or Calendar Entries. Reminder emails can be sent by a User to themself, to other Users, to Clio Connect Contacts, or to any authorized email. An in-Clio pop-up reminder can also be sent by a User to themself.
Reminder#index
Code samples
# You can also use wget
curl -X GET /api/v4/reminders.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/reminders.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/reminders.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/reminders.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/reminders.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/reminders.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/reminders.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /reminders.json
Return the data for all Reminders
Outlines the parameters, optional and required, used when requesting the data for all Reminders
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of Reminder records to be returned. Limit can range between 1 and 200. Default: 200. |
| notification_method_id | query | integer(int32) | false | The unique identifier for a single NotificationMethod. The keyword null is not valid for this field. The list will be filtered to include only the Reminder records with the matching property. |
| order | query | string | false | Orders the Reminder records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| state | query | string | false | Filter Reminder records to those with a given state. |
| subject_id | query | integer(int32) | false | The unique identifier for a single CalendarEntry or Task. The keyword null is not valid for this field. The list will be filtered to include only the Reminder records with the matching property. |
| subject_type | query | string | false | Filter Reminder records to those of a given subject type, required if using subject_id. |
| user_id | query | integer(int32) | false | The unique identifier for a single User. The keyword null is not valid for this field. The list will be filtered to include only the Reminder records with the matching property. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | next_delivery_at(asc) |
| order | next_delivery_at(desc) |
| order | id(asc) |
| order | id(desc) |
| state | initializing |
| state | scheduling |
| state | rescheduling |
| state | scheduled |
| state | attempting_delivery |
| state | delivery_failed |
| state | delivered |
| state | delivery_skipped |
| state | invalid_user |
| subject_type | calendar_entry |
| subject_type | task |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ReminderList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Reminder#create
Code samples
# You can also use wget
curl -X POST /api/v4/reminders.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/reminders.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/reminders.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"duration_unit": "weeks",
"duration_value": 0,
"notification_method": {
"id": 0
},
"subject": {
"id": 0,
"type": "CalendarEntry"
}
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/reminders.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/reminders.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/reminders.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/reminders.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /reminders.json
Create a new Reminder
Outlines the parameters and data fields used when creating a new Reminder
Body parameter
{
"data": {
"duration_unit": "weeks",
"duration_value": 0,
"notification_method": {
"id": 0
},
"subject": {
"id": 0,
"type": "CalendarEntry"
}
}
}
data:
duration_unit: weeks
duration_value: 0
notification_method:
id: 0
subject:
id: 0
type: CalendarEntry
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» duration_unit | body | string | false | Unit to measure the duration value in. |
| »» duration_value | body | integer(int32) | false | Time measured in duration_unit to remind user before the subject. |
| »» notification_method | body | object | true | No description |
| »»» id | body | integer(int32) | true | The unique identifier for a single NotificationMethod associated with the Reminder. The keyword null is not valid for this field. |
| »» subject | body | object | true | No description |
| »»» id | body | integer(int32) | true | The unique identifier for a single CalendarEntry and Task associated with the Reminder. The keyword null is not valid for this field. |
| »»» type | body | string | true | Model type of the Subject. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »» duration_unit | weeks |
| »» duration_unit | days |
| »» duration_unit | hours |
| »» duration_unit | minutes |
| »»» type | CalendarEntry |
| »»» type | Task |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | ReminderShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Reminder#show
Code samples
# You can also use wget
curl -X GET /api/v4/reminders/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/reminders/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/reminders/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/reminders/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/reminders/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/reminders/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/reminders/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /reminders/{id}.json
Return the data for a single Reminder
Outlines the parameters, optional and required, used when requesting the data for a single Reminder
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the Reminder. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ReminderShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Reminder#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/reminders/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/reminders/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/reminders/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"duration_unit": "weeks",
"duration_value": 0,
"notification_method": {
"id": 0
}
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/reminders/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/reminders/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/reminders/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/reminders/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /reminders/{id}.json
Update a single Reminder
Outlines the parameters and data fields used when updating a single Reminder
Body parameter
{
"data": {
"duration_unit": "weeks",
"duration_value": 0,
"notification_method": {
"id": 0
}
}
}
data:
duration_unit: weeks
duration_value: 0
notification_method:
id: 0
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the Reminder. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» duration_unit | body | string | false | Unit to measure the duration value in. |
| »» duration_value | body | integer(int32) | false | Time measured in duration_unit to remind user before the subject. |
| »» notification_method | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single NotificationMethod associated with the Reminder. The keyword null is not valid for this field. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »» duration_unit | weeks |
| »» duration_unit | days |
| »» duration_unit | hours |
| »» duration_unit | minutes |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ReminderShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Reminder#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/reminders/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/reminders/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/reminders/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/reminders/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/reminders/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/reminders/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/reminders/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /reminders/{id}.json
Delete a single Reminder
Outlines the parameters, optional and required, used when deleting the record for a single Reminder
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the Reminder. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Reports
Report#download
Code samples
# You can also use wget
curl -X GET /api/v4/reports/{id}/download.json \
-H 'Accept: */*'
GET /api/v4/reports/{id}/download.json HTTP/1.1
Host: null
Accept: */*
var headers = {
'Accept':'*/*'
};
$.ajax({
url: '/api/v4/reports/{id}/download.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*'
};
fetch('/api/v4/reports/{id}/download.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*'
}
result = RestClient.get '/api/v4/reports/{id}/download.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*'
}
r = requests.get('/api/v4/reports/{id}/download.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/reports/{id}/download.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /reports/{id}/download.json
Download the completed Report
Download the completed Report
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer(int32) | true | The unique identifier for the Report. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 303 | See Other | See Other | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Report#create
Code samples
# You can also use wget
curl -X POST /api/v4/reports.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string'
POST /api/v4/reports.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/reports.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"client": {
"id": 0
},
"end_date": "2018-03-22",
"format": "pdf",
"kind": "revenue",
"matter": {
"id": 0
},
"originating_attorney": {
"id": 0
},
"practice_area": {
"id": 0
},
"responsible_attorney": {
"id": 0
},
"start_date": "2018-03-22",
"user": {
"id": 0
}
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
fetch('/api/v4/reports.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string'
}
result = RestClient.post '/api/v4/reports.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string'
}
r = requests.post('/api/v4/reports.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/reports.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /reports.json
Create a new Report
Outlines the parameters and data fields used when creating a new Report
Body parameter
{
"data": {
"client": {
"id": 0
},
"end_date": "2018-03-22",
"format": "pdf",
"kind": "revenue",
"matter": {
"id": 0
},
"originating_attorney": {
"id": 0
},
"practice_area": {
"id": 0
},
"responsible_attorney": {
"id": 0
},
"start_date": "2018-03-22",
"user": {
"id": 0
}
}
}
data:
client:
id: 0
end_date: '2018-03-22'
format: pdf
kind: revenue
matter:
id: 0
originating_attorney:
id: 0
practice_area:
id: 0
responsible_attorney:
id: 0
start_date: '2018-03-22'
user:
id: 0
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» client | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Contact associated with the Report. The keyword null is not valid for this field. |
| »» end_date | body | string(date) | false | Filters Report data by date. (Expects an ISO-8601 date). |
| »» format | body | string | true | What format the Report will be generated in. |
| »» kind | body | string | true | What kind of Report will be generated. |
| »» matter | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Matter associated with the Report. The keyword null is not valid for this field. |
| »» originating_attorney | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single User associated with the Report. The keyword null is not valid for this field. |
| »» practice_area | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single PracticeArea associated with the Report. The keyword null is not valid for this field. |
| »» responsible_attorney | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single User associated with the Report. The keyword null is not valid for this field. |
| »» start_date | body | string(date) | false | Filters Report data by date. (Expects an ISO-8601 date). |
| »» user | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single User associated with the Report. The keyword null is not valid for this field. |
Enumerated Values
| Parameter | Value |
|---|---|
| »» format | |
| »» format | csv |
| »» format | html |
| »» kind | revenue |
| »» kind | fee_allocation |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | ReportShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Report#show
Code samples
# You can also use wget
curl -X GET /api/v4/reports/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/reports/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/reports/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/reports/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/reports/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/reports/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/reports/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /reports/{id}.json
Return the data for a single Report
Outlines the parameters, optional and required, used when requesting the data for a single Report
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the Report. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ReportShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Billing Settings
BillingSetting#show
Code samples
# You can also use wget
curl -X GET /api/v4/settings/billing.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/settings/billing.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/settings/billing.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/settings/billing.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/settings/billing.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/settings/billing.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/settings/billing.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /settings/billing.json
Return the billing settings
Outlines the parameters, optional and required, used when requesting the data for a single BillingSetting
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| duration | query | string | false | Duration string for time rounding, conforming to the Chronic date parser. For example: '3h' or '2:15'. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | BillingSettingShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Text Snippets
Clio's Text Snippets feature allows users to create a list of predefined abbreviations for commonly used phrases. For example, a user could configure their settings to have “meeting with client” show up whenever they type “mwc.”
This feature can be used in various field in Clio, such as the Matter Description, Note Detail, Calendar Entry Description and Task Description fields.
Text snippets are created and configured in the Clio settings menu.
TextSnippet#index
Code samples
# You can also use wget
curl -X GET /api/v4/settings/text_snippets.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/settings/text_snippets.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/settings/text_snippets.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/settings/text_snippets.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/settings/text_snippets.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/settings/text_snippets.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/settings/text_snippets.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /settings/text_snippets.json
Return all text snippets
Outlines the parameters, optional and required, used when requesting the data for all TextSnippets
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| created_since | query | string(date-time) | false | Filter TextSnippet records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| ids[] | query | integer(int32) | false | Filter TextSnippet records to those having the specified unique identifiers |
| limit | query | integer(int32) | false | A limit on the number of TextSnippet records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the TextSnippet records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| query | query | string | false | Wildcard search for snippet or phrase matching a given string. |
| updated_since | query | string(date-time) | false | Filter TextSnippet records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | id(asc) |
| order | id(desc) |
| order | snippet(asc) |
| order | snippet(desc) |
| order | phrase(asc) |
| order | phrase(desc) |
| order | whole_word(asc) |
| order | whole_word(desc) |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | TextSnippetList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
TextSnippet#create
Code samples
# You can also use wget
curl -X POST /api/v4/settings/text_snippets.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/settings/text_snippets.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/settings/text_snippets.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"phrase": "string",
"snippet": "string",
"whole_word": true
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/settings/text_snippets.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/settings/text_snippets.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/settings/text_snippets.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/settings/text_snippets.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /settings/text_snippets.json
Create a text snippet
Outlines the parameters and data fields used when creating a new TextSnippet
Body parameter
{
"data": {
"phrase": "string",
"snippet": "string",
"whole_word": true
}
}
data:
phrase: string
snippet: string
whole_word: true
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» phrase | body | string | true | The phrase expanded to from a TextSnippet. |
| »» snippet | body | string | true | The abbreviation that expands to a phrase. |
| »» whole_word | body | boolean | false | Whether or not the TextSnippet requires a space after to trigger the expansion. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | TextSnippetShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
TextSnippet#show
Code samples
# You can also use wget
curl -X GET /api/v4/settings/text_snippets/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/settings/text_snippets/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/settings/text_snippets/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/settings/text_snippets/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/settings/text_snippets/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/settings/text_snippets/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/settings/text_snippets/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /settings/text_snippets/{id}.json
Return the data for the text snippet
Outlines the parameters, optional and required, used when requesting the data for a single TextSnippet
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the TextSnippet. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | TextSnippetShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
TextSnippet#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/settings/text_snippets/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/settings/text_snippets/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/settings/text_snippets/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"phrase": "string",
"snippet": "string",
"whole_word": true
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/settings/text_snippets/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/settings/text_snippets/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/settings/text_snippets/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/settings/text_snippets/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /settings/text_snippets/{id}.json
Update a text snippet
Outlines the parameters and data fields used when updating a single TextSnippet
Body parameter
{
"data": {
"phrase": "string",
"snippet": "string",
"whole_word": true
}
}
data:
phrase: string
snippet: string
whole_word: true
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the TextSnippet. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» phrase | body | string | false | The phrase expanded to from a TextSnippet. |
| »» snippet | body | string | false | The abbreviation that expands to a phrase. |
| »» whole_word | body | boolean | false | Whether or not the TextSnippet requires a space after to trigger the expansion. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | TextSnippetShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
TextSnippet#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/settings/text_snippets/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/settings/text_snippets/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/settings/text_snippets/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/settings/text_snippets/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/settings/text_snippets/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/settings/text_snippets/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/settings/text_snippets/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /settings/text_snippets/{id}.json
Destroy a text snippet
Outlines the parameters, optional and required, used when deleting the record for a single TextSnippet
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the TextSnippet. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Tasks
Tasks are used to assign and track work. Users can set priorities, due dates, and add reminders.
Tasks can be assigned to firm users as well as Contacts (such as clients or co-counsel).
Task#index
Code samples
# You can also use wget
curl -X GET /api/v4/tasks.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/tasks.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/tasks.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/tasks.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/tasks.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/tasks.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/tasks.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /tasks.json
Return the data for all Tasks
Outlines the parameters, optional and required, used when requesting the data for all Tasks
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| assignee_id | query | integer(int32) | false | The unique identifier for a single User or Contact. Use the keyword null to match those without a Task. The list will be filtered to include only the Task records with the matching property. |
| assignee_type | query | string | false | Filter Task records to those with a specific assignee. Must be passed if filtering by assignee. |
| assigner_id | query | integer(int32) | false | The unique identifier for a single User. Use the keyword null to match those without a Task. The list will be filtered to include only the Task records with the matching property. |
| created_since | query | string(date-time) | false | Filter Task records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| due_at_from | query | string(date) | false | Start of date range when querying by due_at in a range. (Expects an ISO-8601 date). |
| due_at_to | query | string(date) | false | End of date range when querying by due_at in a range. (Expects an ISO-8601 date). |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| ids[] | query | integer(int32) | false | Filter Task records to those having the specified unique identifiers |
| limit | query | integer(int32) | false | A limit on the number of Task records to be returned. Limit can range between 1 and 200. Default: 200. |
| matter_id | query | integer(int32) | false | The unique identifier for a single Matter. Use the keyword null to match those without a Task. The list will be filtered to include only the Task records with the matching property. |
| order | query | string | false | Orders the Task records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| priority | query | string | false | Filter Task records to those with the given priority. |
| query | query | string | false | Wildcard search for name matching a given string. |
| status | query | integer(int32) | false | Filter Task records to those with the given status. Users without advanced tasks enabled may only specify 'complete' or 'pending'. |
| statute_of_limitations | query | boolean | false | Filter Task records to those which are a statute of limitations or not. |
| task_type_id | query | integer(int32) | false | The unique identifier for a single TaskType. Use the keyword null to match those without a Task. The list will be filtered to include only the Task records with the matching property. |
| updated_since | query | string(date-time) | false | Filter Task records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| assignee_type | user |
| assignee_type | contact |
| order | name(asc) |
| order | name(desc) |
| order | id(asc) |
| order | id(desc) |
| order | priority(asc) |
| order | priority(desc) |
| priority | high |
| priority | normal |
| priority | low |
| status | pending |
| status | in_progress |
| status | in_review |
| status | complete |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | TaskList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Task#create
Code samples
# You can also use wget
curl -X POST /api/v4/tasks.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/tasks.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/tasks.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"assignee": {
"id": 0,
"type": "User"
},
"description": "string",
"due_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0
},
"name": "string",
"notify_assignee": true,
"notify_completion": true,
"priority": "Normal",
"status": "pending",
"statute_of_limitations": true,
"task_type": {
"id": 0
}
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/tasks.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/tasks.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/tasks.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/tasks.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /tasks.json
Create a new Task
Outlines the parameters and data fields used when creating a new Task
Body parameter
{
"data": {
"assignee": {
"id": 0,
"type": "User"
},
"description": "string",
"due_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0
},
"name": "string",
"notify_assignee": true,
"notify_completion": true,
"priority": "Normal",
"status": "pending",
"statute_of_limitations": true,
"task_type": {
"id": 0
}
}
}
data:
assignee:
id: 0
type: User
description: string
due_at: '2018-03-22T20:30:34Z'
matter:
id: 0
name: string
notify_assignee: true
notify_completion: true
priority: Normal
status: pending
statute_of_limitations: true
task_type:
id: 0
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» assignee | body | object | true | No description |
| »»» id | body | integer(int32) | true | The unique identifier for a single User or Contact associated with the Task. The keyword null is not valid for this field. |
| »»» type | body | string | true | Model type of the assignee. |
| »» description | body | string | true | Longer description of the Task. |
| »» due_at | body | string(date-time) | false | Date when the Task must be completed by. (Expects an ISO-8601 date). |
| »» matter | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Matter associated with the Task. The keyword null is not valid for this field. |
| »» name | body | string | true | Name of the Task. |
| »» notify_assignee | body | boolean | false | Whether or not the Task should notify the assignee on creation. |
| »» notify_completion | body | boolean | false | Whether or not the Task should notify the assigner on completion. |
| »» priority | body | string | false | Priority of the Task. |
| »» status | body | string | false | Task status. Users without advanced tasks are allowed to select Complete or Pending only. |
| »» statute_of_limitations | body | boolean | false | Whether or not the Task should be a statute of limitations. |
| »» task_type | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single TaskType associated with the Task. The keyword null is not valid for this field. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »»» type | User |
| »»» type | Contact |
| »» priority | High |
| »» priority | Normal |
| »» priority | Low |
| »» status | pending |
| »» status | in_progress |
| »» status | in_review |
| »» status | complete |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | TaskShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Task#show
Code samples
# You can also use wget
curl -X GET /api/v4/tasks/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/tasks/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/tasks/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/tasks/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/tasks/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/tasks/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/tasks/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /tasks/{id}.json
Return the data for a single Task
Outlines the parameters, optional and required, used when requesting the data for a single Task
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the Task. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | TaskShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Task#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/tasks/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/tasks/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/tasks/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"assignee": {
"id": 0,
"type": "User"
},
"description": "string",
"due_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0
},
"name": "string",
"notify_completion": true,
"priority": "Normal",
"status": "pending",
"task_type": {
"id": 0
}
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/tasks/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/tasks/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/tasks/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/tasks/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /tasks/{id}.json
Update a single Task
Outlines the parameters and data fields used when updating a single Task
Body parameter
{
"data": {
"assignee": {
"id": 0,
"type": "User"
},
"description": "string",
"due_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0
},
"name": "string",
"notify_completion": true,
"priority": "Normal",
"status": "pending",
"task_type": {
"id": 0
}
}
}
data:
assignee:
id: 0
type: User
description: string
due_at: '2018-03-22T20:30:34Z'
matter:
id: 0
name: string
notify_completion: true
priority: Normal
status: pending
task_type:
id: 0
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the Task. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» assignee | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single User or Contact associated with the Task. The keyword null is not valid for this field. |
| »»» type | body | string | false | Model type of the assignee. |
| »» description | body | string | false | Longer description of the Task. |
| »» due_at | body | string(date-time) | false | Date when the Task must be completed by. (Expects an ISO-8601 date). |
| »» matter | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Matter associated with the Task. The keyword null is not valid for this field. |
| »» name | body | string | false | Name of the Task. |
| »» notify_completion | body | boolean | false | Whether or not the Task should notify the assigner on completion. |
| »» priority | body | string | false | Priority of the Task. |
| »» status | body | string | false | Task status. Users without advanced tasks are allowed to select Complete or Pending only. |
| »» task_type | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single TaskType associated with the Task. The keyword null is not valid for this field. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »»» type | User |
| »»» type | Contact |
| »» priority | High |
| »» priority | Normal |
| »» priority | Low |
| »» status | pending |
| »» status | in_progress |
| »» status | in_review |
| »» status | complete |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | TaskShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Task#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/tasks/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/tasks/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/tasks/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/tasks/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/tasks/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/tasks/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/tasks/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /tasks/{id}.json
Delete a single Task
Outlines the parameters, optional and required, used when deleting the record for a single Task
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the Task. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Calendar Visibilities
CalendarVisibility#index
Code samples
# You can also use wget
curl -X GET /api/v4/task_calendars.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/task_calendars.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/task_calendars.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/task_calendars.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/task_calendars.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/task_calendars.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/task_calendars.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /task_calendars.json
Return the data for all CalendarVisibilities
Outlines the parameters, optional and required, used when requesting the data for all CalendarVisibilities
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of CalendarVisibility records to be returned. Limit can range between 1 and 200. Default: 200. |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | CalendarVisibilityList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
CalendarVisibility#show
Code samples
# You can also use wget
curl -X GET /api/v4/task_calendars/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/task_calendars/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/task_calendars/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/task_calendars/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/task_calendars/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/task_calendars/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/task_calendars/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /task_calendars/{id}.json
Return the data for a single CalendarVisibility
Outlines the parameters, optional and required, used when requesting the data for a single CalendarVisibility
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the CalendarVisibility. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | CalendarVisibilityShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
CalendarVisibility#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/task_calendars/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string'
PATCH /api/v4/task_calendars/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/task_calendars/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"color": "#6690ff",
"visible": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
fetch('/api/v4/task_calendars/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string'
}
result = RestClient.patch '/api/v4/task_calendars/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string'
}
r = requests.patch('/api/v4/task_calendars/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/task_calendars/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /task_calendars/{id}.json
Update a single CalendarVisibility
Outlines the parameters and data fields used when updating a single CalendarVisibility
Body parameter
{
"data": {
"color": "#6690ff",
"visible": "string"
}
}
data:
color: '#6690ff'
visible: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the CalendarVisibility. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» color | body | string | false | Calendar color as seen in the Clio Web UI. |
| »» visible | body | string | false | Whether or not the CalendarVisibility should be visible by default in the Clio Web UI. |
Enumerated Values
| Parameter | Value |
|---|---|
| »» color | #6690ff |
| »» color | #f95957 |
| »» color | #209412 |
| »» color | #ff7715 |
| »» color | #ce85ca |
| »» color | #c69000 |
| »» color | #00ceff |
| »» color | #00b177 |
| »» color | #50d19b |
| »» color | #f14a8c |
| »» color | #afb12a |
| »» color | #84ab3b |
| »» color | #b091ee |
| »» color | #bd9e69 |
| »» color | #f2a000 |
| »» color | #00a5ca |
| »» color | #cb5a3d |
| »» color | #959cd0 |
| »» color | #b0b0b0 |
| »» color | #7ba6cd |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | CalendarVisibilityShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Task Templates
Task Templates are the individual Tasks which comprise a Task Template List.
TaskTemplate#index
Code samples
# You can also use wget
curl -X GET /api/v4/task_templates.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/task_templates.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/task_templates.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/task_templates.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/task_templates.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/task_templates.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/task_templates.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /task_templates.json
Return the data for all TaskTemplates
Outlines the parameters, optional and required, used when requesting the data for all TaskTemplates
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of TaskTemplate records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the TaskTemplate records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| priority | query | string | false | Filter TaskTemplate records to those with the given priority. |
| query | query | string | false | Wildcard search for name matching a given string. |
| task_template_list_id | query | integer(int32) | false | The unique identifier for a single TaskTemplateList. The keyword null is not valid for this field. The list will be filtered to include only the TaskTemplate records with the matching property. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | id(asc) |
| order | id(desc) |
| order | name(asc) |
| order | name(desc) |
| order | priority(asc) |
| order | priority(desc) |
| priority | high |
| priority | normal |
| priority | low |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | TaskTemplateList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
TaskTemplate#create
Code samples
# You can also use wget
curl -X POST /api/v4/task_templates.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/task_templates.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/task_templates.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"description": "string",
"name": "string",
"priority": "Normal",
"private": true,
"reminder_templates": [
{
"duration_value": 0,
"duration_unit": "string"
}
],
"task_template_list": {
"id": 0
}
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/task_templates.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/task_templates.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/task_templates.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/task_templates.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /task_templates.json
Create a new TaskTemplate
Outlines the parameters and data fields used when creating a new TaskTemplate
Body parameter
{
"data": {
"description": "string",
"name": "string",
"priority": "Normal",
"private": true,
"reminder_templates": [
{
"duration_value": 0,
"duration_unit": "string"
}
],
"task_template_list": {
"id": 0
}
}
}
data:
description: string
name: string
priority: Normal
private: true
reminder_templates:
- duration_value: 0
duration_unit: string
task_template_list:
id: 0
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» description | body | string | false | Longer description for the TaskTemplate. |
| »» name | body | string | true | Short name for the TaskTemplate. |
| »» priority | body | string | false | Priority of the task. |
| »» private | body | boolean | false | Whether or not this TaskTemplate should be private. |
| »» reminder_templates | body | [object] | false | No description |
| »»» duration_value | body | integer(int32) | true | Time measured in duration_unit to remind user before the subject. |
| »»» duration_unit | body | string | true | Unit to measure the duration value in. |
| »» task_template_list | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single TaskTemplateList associated with the TaskTemplate. The keyword null is not valid for this field. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »» priority | High |
| »» priority | Normal |
| »» priority | Low |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | TaskTemplateShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
TaskTemplate#show
Code samples
# You can also use wget
curl -X GET /api/v4/task_templates/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/task_templates/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/task_templates/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/task_templates/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/task_templates/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/task_templates/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/task_templates/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /task_templates/{id}.json
Return the data for a single TaskTemplate
Outlines the parameters, optional and required, used when requesting the data for a single TaskTemplate
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the TaskTemplate. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | TaskTemplateShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
TaskTemplate#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/task_templates/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/task_templates/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/task_templates/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"description": "string",
"name": "string",
"priority": "Normal",
"private": true,
"reminder_templates": [
{
"duration_value": 0,
"duration_unit": "string",
"id": 0,
"_destroy": true
}
]
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/task_templates/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/task_templates/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/task_templates/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/task_templates/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /task_templates/{id}.json
Update a single TaskTemplate
Outlines the parameters and data fields used when updating a single TaskTemplate
Body parameter
{
"data": {
"description": "string",
"name": "string",
"priority": "Normal",
"private": true,
"reminder_templates": [
{
"duration_value": 0,
"duration_unit": "string",
"id": 0,
"_destroy": true
}
]
}
}
data:
description: string
name: string
priority: Normal
private: true
reminder_templates:
- duration_value: 0
duration_unit: string
id: 0
_destroy: true
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the TaskTemplate. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» description | body | string | false | Longer description for the TaskTemplate. |
| »» name | body | string | false | Short name for the TaskTemplate. |
| »» priority | body | string | false | Priority of the task. |
| »» private | body | boolean | false | Whether or not this TaskTemplate should be private. |
| »» reminder_templates | body | [object] | false | No description |
| »»» duration_value | body | integer(int32) | false | Time measured in duration_unit to remind user before the subject. |
| »»» duration_unit | body | string | false | Unit to measure the duration value in. |
| »»» id | body | integer(int32) | false | The unique identifier for a single ReminderTemplate associated with the TaskTemplate. The keyword null is not valid for this field. |
| »»» _destroy | body | boolean | false | The destroy flag. If the flag is set to true and the unique identifier of the associated ReminderTemplate is present, the ReminderTemplate is deleted from the TaskTemplate. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »» priority | High |
| »» priority | Normal |
| »» priority | Low |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | TaskTemplateShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
TaskTemplate#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/task_templates/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/task_templates/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/task_templates/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/task_templates/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/task_templates/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/task_templates/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/task_templates/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /task_templates/{id}.json
Delete a single TaskTemplate
Outlines the parameters, optional and required, used when deleting the record for a single TaskTemplate
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the TaskTemplate. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Task Template Lists
With Task Template Lists, users can create groups of Task Templates for the types of projects they work on most often. Each Task in a list can be given a separate due date in relation to the due dates for other Tasks in the list.
Users can then assign individual tasks on a list to different users, or they can batch assign an entire list.
TaskTemplateList#index
Code samples
# You can also use wget
curl -X GET /api/v4/task_template_lists.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/task_template_lists.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/task_template_lists.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/task_template_lists.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/task_template_lists.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/task_template_lists.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/task_template_lists.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /task_template_lists.json
Return the data for all TaskTemplateLists
Outlines the parameters, optional and required, used when requesting the data for all TaskTemplateLists
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| empty | query | boolean | false | Filter TaskTemplateList records to those that either contain at least one task template or contain none. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of TaskTemplateList records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the TaskTemplateList records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| practice_area_id | query | integer(int32) | false | The unique identifier for a single PracticeArea. Use the keyword null to match those without a TaskTemplateList. The list will be filtered to include only the TaskTemplateList records with the matching property. |
| query | query | string | false | Wildcard search for name matching a given string. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| empty | true |
| empty | false |
| order | id(asc) |
| order | id(desc) |
| order | name(asc) |
| order | name(desc) |
| order | practice_area.name(asc) |
| order | practice_area.name(desc) |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | TaskTemplateListList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
TaskTemplateList#create
Code samples
# You can also use wget
curl -X POST /api/v4/task_template_lists.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/task_template_lists.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/task_template_lists.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"description": "string",
"name": "string",
"practice_area": {
"id": 0
}
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/task_template_lists.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/task_template_lists.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/task_template_lists.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/task_template_lists.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /task_template_lists.json
Create a new TaskTemplateList
Outlines the parameters and data fields used when creating a new TaskTemplateList
Body parameter
{
"data": {
"description": "string",
"name": "string",
"practice_area": {
"id": 0
}
}
}
data:
description: string
name: string
practice_area:
id: 0
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» description | body | string | true | Description of the TaskTemplateList. |
| »» name | body | string | true | Name of the TaskTemplateList. |
| »» practice_area | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single PracticeArea associated with the TaskTemplateList. The keyword null is not valid for this field. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | TaskTemplateListShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
TaskTemplateList#show
Code samples
# You can also use wget
curl -X GET /api/v4/task_template_lists/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/task_template_lists/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/task_template_lists/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/task_template_lists/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/task_template_lists/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/task_template_lists/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/task_template_lists/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /task_template_lists/{id}.json
Return the data for a single TaskTemplateList
Outlines the parameters, optional and required, used when requesting the data for a single TaskTemplateList
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the TaskTemplateList. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | TaskTemplateListShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
TaskTemplateList#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/task_template_lists/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/task_template_lists/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/task_template_lists/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"description": "string",
"name": "string",
"practice_area": {
"id": 0
}
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/task_template_lists/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/task_template_lists/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/task_template_lists/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/task_template_lists/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /task_template_lists/{id}.json
Update a single TaskTemplateList
Outlines the parameters and data fields used when updating a single TaskTemplateList
Body parameter
{
"data": {
"description": "string",
"name": "string",
"practice_area": {
"id": 0
}
}
}
data:
description: string
name: string
practice_area:
id: 0
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the TaskTemplateList. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» description | body | string | false | Description of the TaskTemplateList. |
| »» name | body | string | false | Name of the TaskTemplateList. |
| »» practice_area | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single PracticeArea associated with the TaskTemplateList. The keyword null is not valid for this field. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | TaskTemplateListShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
TaskTemplateList#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/task_template_lists/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/task_template_lists/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/task_template_lists/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/task_template_lists/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/task_template_lists/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/task_template_lists/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/task_template_lists/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /task_template_lists/{id}.json
Delete a single TaskTemplateList
Outlines the parameters, optional and required, used when deleting the record for a single TaskTemplateList
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the TaskTemplateList. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Task Types
Task Types are used to better categorize and filter tasks. This is a simple text field which is limited to 50 characters.
Task Types are part of the Advanced Tasks feature, available to subscribers to Clio’s Elite plan.
Used within Clio at Task types
TaskType#index
Code samples
# You can also use wget
curl -X GET /api/v4/task_types.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/task_types.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/task_types.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/task_types.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/task_types.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/task_types.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/task_types.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /task_types.json
Return the data for all TaskTypes
Outlines the parameters, optional and required, used when requesting the data for all TaskTypes
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of TaskType records to be returned. Limit can range between 1 and 200. Default: 200. |
| name | query | string | false | Filter TaskType records to those with the given name. |
| order | query | string | false | Orders the TaskType records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | name(asc) |
| order | name(desc) |
| order | id(asc) |
| order | id(desc) |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | TaskTypeList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
TaskType#create
Code samples
# You can also use wget
curl -X POST /api/v4/task_types.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/task_types.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/task_types.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"deleted_at": "2018-03-22",
"name": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/task_types.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/task_types.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/task_types.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/task_types.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /task_types.json
Create a new TaskType
Outlines the parameters and data fields used when creating a new TaskType
Body parameter
{
"data": {
"deleted_at": "2018-03-22",
"name": "string"
}
}
data:
deleted_at: '2018-03-22'
name: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» deleted_at | body | string(date) | false | Date the TaskType was disabled. (Expects an ISO-8601 timestamp). |
| »» name | body | string | true | Name of the TaskType. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | TaskTypeShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
TaskType#show
Code samples
# You can also use wget
curl -X GET /api/v4/task_types/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/task_types/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/task_types/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/task_types/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/task_types/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/task_types/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/task_types/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /task_types/{id}.json
Return the data for a single TaskType
Outlines the parameters, optional and required, used when requesting the data for a single TaskType
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the TaskType. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | TaskTypeShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
TaskType#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/task_types/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/task_types/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/task_types/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"deleted_at": "2018-03-22",
"name": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/task_types/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/task_types/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/task_types/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/task_types/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /task_types/{id}.json
Update a single TaskType
Outlines the parameters and data fields used when updating a single TaskType
Body parameter
{
"data": {
"deleted_at": "2018-03-22",
"name": "string"
}
}
data:
deleted_at: '2018-03-22'
name: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the TaskType. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» deleted_at | body | string(date) | false | Date the TaskType was disabled. (Expects an ISO-8601 timestamp). |
| »» name | body | string | false | Name of the TaskType. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | TaskTypeShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Timers
Timers are used to track time spent on billable work. They are used with hourly-billable Time Entries.
The Timer modal is accessed by clicking the timer in the application's header, or by clicking the Timer icon on a Time Entry.
Used within Clio in the timer modal which can be accessed by clicking the timer in the header, sidebar, and the time entries table.
Timer#create
Code samples
# You can also use wget
curl -X POST /api/v4/timer.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string'
POST /api/v4/timer.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/timer.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"activity": {
"id": 0
}
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
fetch('/api/v4/timer.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string'
}
result = RestClient.post '/api/v4/timer.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string'
}
r = requests.post('/api/v4/timer.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/timer.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /timer.json
Create a new Timer
This action does not support bulk actions
Body parameter
{
"data": {
"activity": {
"id": 0
}
}
}
data:
activity:
id: 0
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» activity | body | object | true | No description |
| »»» id | body | integer(int32) | true | The unique identifier for a single Activity associated with the Timer. The keyword null is not valid for this field. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | TimerShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Timer#show
Code samples
# You can also use wget
curl -X GET /api/v4/timer.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/timer.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/timer.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/timer.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/timer.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/timer.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/timer.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /timer.json
Return the data for a single Timer
Outlines the parameters, optional and required, used when requesting the data for a single Timer
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | TimerShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Timer#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/timer.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string'
DELETE /api/v4/timer.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/timer.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string'
};
fetch('/api/v4/timer.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string'
}
result = RestClient.delete '/api/v4/timer.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string'
}
r = requests.delete('/api/v4/timer.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/timer.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /timer.json
Delete a single Timer
This action does not support bulk actions
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Trust Line Items
TrustLineItem#index
Code samples
# You can also use wget
curl -X GET /api/v4/trust_line_items.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/trust_line_items.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/trust_line_items.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/trust_line_items.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/trust_line_items.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/trust_line_items.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/trust_line_items.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /trust_line_items.json
Return the data for all TrustLineItems
Outlines the parameters, optional and required, used when requesting the data for all TrustLineItems
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| bill_id | query | integer(int32) | false | The unique identifier for a single Bill. The keyword null is not valid for this field. The list will be filtered to include only the TrustLineItem records with the matching property. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of TrustLineItem records to be returned. Limit can range between 1 and 200. Default: 200. |
| matter_id | query | integer(int32) | false | The unique identifier for a single Matter. Use the keyword null to match those without a TrustLineItem. The list will be filtered to include only the TrustLineItem records with the matching property. |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | TrustLineItemList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
TrustLineItem#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/trust_line_items/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/trust_line_items/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/trust_line_items/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"date": "2018-03-22",
"note": "string",
"total": 0
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/trust_line_items/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/trust_line_items/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/trust_line_items/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/trust_line_items/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /trust_line_items/{id}.json
Update a single TrustLineItem
Outlines the parameters and data fields used when updating a single TrustLineItem
Body parameter
{
"data": {
"date": "2018-03-22",
"note": "string",
"total": 0
}
}
data:
date: '2018-03-22'
note: string
total: 0
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the TrustLineItem. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» date | body | string(date) | false | Date for the TrustLineItem. (Expects an ISO-8601 date). |
| »» note | body | string | false | Note for the TrustLineItem. |
| »» total | body | number(double) | false | Total amount the TrustLineItem is for. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | TrustLineItemShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Trust Requests
TrustRequest#create
Code samples
# You can also use wget
curl -X POST /api/v4/trust_requests.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/trust_requests.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/trust_requests.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"approved": true,
"client_id": 0,
"due_date": "2018-03-22",
"issue_date": "2018-03-22",
"matter": {
"id": 0,
"trust_amount": 0,
"note": "string"
},
"note": "string",
"trust_amount": 0,
"trust_type": "client"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/trust_requests.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/trust_requests.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/trust_requests.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/trust_requests.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /trust_requests.json
Create a new TrustRequest
Outlines the parameters and data fields used when creating a new TrustRequest
Body parameter
{
"data": {
"approved": true,
"client_id": 0,
"due_date": "2018-03-22",
"issue_date": "2018-03-22",
"matter": {
"id": 0,
"trust_amount": 0,
"note": "string"
},
"note": "string",
"trust_amount": 0,
"trust_type": "client"
}
}
data:
approved: true
client_id: 0
due_date: '2018-03-22'
issue_date: '2018-03-22'
matter:
id: 0
trust_amount: 0
note: string
note: string
trust_amount: 0
trust_type: client
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» approved | body | boolean | true | Whether or not the TrustRequest should be automatically approved. |
| »» client_id | body | integer(int32) | true | The client_id associated to the TrustRequest |
| »» due_date | body | string(date) | true | The date the TrustRequest is due (Expects an ISO-8601 date). |
| »» issue_date | body | string(date) | true | The date the TrustRequest is issued (Expects an ISO-8601 date). |
| »» matter | body | object | false | No description |
| »»» id | body | integer(int32) | false | The matter id associated to the TrustRequest |
| »»» trust_amount | body | integer(int32) | false | The matter level TrustRequest's amount |
| »»» note | body | string | false | The client level TrustRequest note |
| »» note | body | string | false | The client level TrustRequest note |
| »» trust_amount | body | number(double) | true | The TrustRequest's amount |
| »» trust_type | body | string | true | The type of TrustRequest |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »» trust_type | client |
| »» trust_type | matter |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | TrustRequestShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Users
A User is anyone with the ability to log in to Clio. This does not include Clio Connect users.
User#who_am_i
Code samples
# You can also use wget
curl -X GET /api/v4/users/who_am_i.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/users/who_am_i.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/users/who_am_i.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/users/who_am_i.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/users/who_am_i.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/users/who_am_i.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/users/who_am_i.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /users/who_am_i.json
Return the data for the current User
Outlines the parameters, optional and required, used when requesting the data for a single User
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | UserShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
User#index
Code samples
# You can also use wget
curl -X GET /api/v4/users.json?name=string \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/users.json?name=string HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/users.json',
method: 'get',
data: '?name=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/users.json?name=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/users.json',
params: {
'name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/users.json', params={
'name': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/users.json?name=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /users.json
Return the data for all Users
Outlines the parameters, optional and required, used when requesting the data for all Users
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| created_since | query | string(date-time) | false | Filter User records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| enabled | query | boolean | false | Filter User records to those that are enabled or disabled |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| ids[] | query | integer(int32) | false | Filter User records to those having the specified unique identifiers |
| limit | query | integer(int32) | false | A limit on the number of User records to be returned. Limit can range between 1 and 200. Default: 200. |
| name | query | string | true | Filter User records to those with the given name. |
| order | query | string | false | Orders the User records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| role | query | string | false | Filter User records to those with a specific role. |
| subscription_type | query | string | false | Filter User records to those with a specific subscription type. |
| updated_since | query | string(date-time) | false | Filter User records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| enabled | true |
| enabled | false |
| order | email(asc) |
| order | email(desc) |
| order | enabled(asc) |
| order | enabled(desc) |
| order | id(asc) |
| order | id(desc) |
| order | name(asc) |
| order | name(desc) |
| order | first_name(asc) |
| order | first_name(desc) |
| order | last_name(asc) |
| order | last_name(desc) |
| order | subscription_type(asc) |
| order | subscription_type(desc) |
| role | admin |
| role | accounts |
| role | billing |
| role | reports |
| subscription_type | attorney |
| subscription_type | nonattorney |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | UserList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
User#show
Code samples
# You can also use wget
curl -X GET /api/v4/users/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/users/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/users/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/users/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/users/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/users/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/users/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /users/{id}.json
Return the data for a single User
Outlines the parameters, optional and required, used when requesting the data for a single User
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the User. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | UserShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Utbms Sets
UTBMS codes are divided into code sets. Each set includes Activities relevant to a certain type of law (for example, litigation, bankruptcy, etc.). Clio users can enable one or more of these sets in the UTBMS settings menu. Enabling a UTBMS code set means that users will be able to select Activities from that list when adding Time or Expense Entries into Clio.
UtbmsSet#index
Code samples
# You can also use wget
curl -X GET /api/v4/utbms/sets.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/utbms/sets.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/utbms/sets.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/utbms/sets.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/utbms/sets.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/utbms/sets.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/utbms/sets.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /utbms/sets.json
Return the data for all the utbms sets
Outlines the parameters, optional and required, used when requesting the data for all UtbmsSets
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of UtbmsSet records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the UtbmsSet records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | name(asc) |
| order | name(desc) |
| order | id(asc) |
| order | id(desc) |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | UtbmsSetList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Utbms Codes
UTBMS codes standardize Time and Expense entries across the legal profession. Clio users can enter their Activities using UTBMS codes in order to provide electronic invoices.
UtbmsCode#index
Code samples
# You can also use wget
curl -X GET /api/v4/utbms/codes.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/utbms/codes.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/utbms/codes.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/utbms/codes.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/utbms/codes.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/utbms/codes.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/utbms/codes.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /utbms/codes.json
Return the data for all UtbmsCodes
Outlines the parameters, optional and required, used when requesting the data for all UtbmsCodes
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of UtbmsCode records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the UtbmsCode records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| type | query | string | false | Filter UtbmsCode records to those of a given type. |
| utbms_set_id | query | integer(int32) | false | The unique identifier for a single UtbmsSet. Use the keyword null to match those without a UtbmsCode. The list will be filtered to include only the UtbmsCode records with the matching property. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | name(asc) |
| order | name(desc) |
| order | id(asc) |
| order | id(desc) |
| order | set(asc) |
| order | set(desc) |
| type | UtbmsTask |
| type | UtbmsActivity |
| type | UtbmsExpense |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | UtbmsCodeList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
UtbmsCode#show
Code samples
# You can also use wget
curl -X GET /api/v4/utbms/codes/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/utbms/codes/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/utbms/codes/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/utbms/codes/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/utbms/codes/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/utbms/codes/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/utbms/codes/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /utbms/codes/{id}.json
Return the data for a single UtbmsCode
Outlines the parameters, optional and required, used when requesting the data for a single UtbmsCode
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the UtbmsCode. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | UtbmsCodeShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Webhooks
Webhooks are a way of detecting events in Clio without the need for polling.
To subscribe to all events for a model, create a webhook record with the URL that you want webhooks to be sent to and a model. Whenever an event happens on that model in Clio that the user is authorized to see, an HTTP request will be made to the supplied URL with details about the event. A webhook will automatically expire after a set period of time. If you require a permanent webhook, you will need to keep manually extending the expires_at field.
Fields
The data a webhook sends is configured by using the fields data parameter on the webhook record. Clio will only send a webhook when at least one of the fields has changed from the last webhook that was delivered. Use the minimum set of fields to reduce how frequently your endpoint is hit.
Delivery Failure & Retries
A response status code of 2xx, 3xx, or 410 GONE indicate that the action was successfully processed. When a 410 GONE response is received, the webhook subscription will be disabled. All other responses will be considered unsuccessful, and they will be retried using an exponential backoff strategy.
Timeouts
Clio will wait a short period of time before the request will timeout. We will consider it an unsuccessful response and retry using an exponential backoff strategy. It is important to respond quickly. Failure to do so repeatedly may result in your webhook being disabled. If you need to do lengthy processing with the webhook, it is recommended that you defer the processing until after you have sent a response back to Clio.
Security
Identity Confirmation
To ensure that a URL actually intends to receive webhooks from Clio, and to ensure that the payloads are actually from Clio, we will share a secret in the initial handshake.
A POST request will be made immediately after a webhook is setup, or whenever the URL changes. This request will have a unique secret in a X-Hook-Secret header. Upon receiving this secret, the endpoint must return a 200 OK response and include the same secret in a X-Hook-Secret header. The webhook will not be enabled until this handshake is successful.
Confirming Hook Legitimacy
To prove that Clio is sending all subsequent messages, Clio will sign all of the requests.
Clio will compute an HMAC-SHA256 signature based on the shared secret and the request body. That signature will then be placed in a X-Hook-Signature header. The endpoint can then verify the signature to know if the message is authentic. Verification is as simple as computing an HMAC-SHA256 signature using the shared secret as the key and the request body as the message, and comparing it to the X-Hook-Signature header.
Example responses
Given a webhook created for the Activities model with no fields specified, the following would be responses for different actions. This webhook will trigger on any events for the model, and return the default fields for that model, and the event type.
- Note: You will receive a webhook for an object if any fields have changed on that object, including fields you haven't subscribed to, if you have never received a webhook for that object before. You will only receive the data of the field you've subscribed to. For example, if you've subscribed to Activities and would like to know when the prices of Activities change, any updates to a previously existing Activity will create a webhook that tells you the price of that Activity, even if it hasn't changed. Subsequent webhooks will only be created when the fields you've subscribed to change.
Create
In the event of an Activity being created, your URL would receive the following JSON:
http
{
"data":{
"id":152,
"etag":"\"9a103be2201ae758992733a91f02903f\""
},
"meta":{
"event":"created"
}
}
Update
In the event of an Activity being updated, your URL would receive the following JSON:
http
{
"data":{
"id":152,
"etag":"\"9d9ef9fb42a505976d90d564c1596f11\""
},
"meta":{
"event":"updated"
}
}
Delete
In the event of an Activity being deleted, your URL would receive the following JSON:
http
{
"data":{
"id":152,
"etag":"\"3cc31bfbd6cfc16d3d7123423e437079\""
},
"meta":{
"event":"deleted"
}
}
Webhook#index
Code samples
# You can also use wget
curl -X GET /api/v4/webhooks.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/webhooks.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/webhooks.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/webhooks.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/webhooks.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/webhooks.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/webhooks.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /webhooks.json
Return the data for all Webhooks
Outlines the parameters, optional and required, used when requesting the data for all Webhooks
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of Webhook records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the Webhook records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | id(asc) |
| order | id(desc) |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | WebhookList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Webhook#create
Code samples
# You can also use wget
curl -X POST /api/v4/webhooks.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/webhooks.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/webhooks.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"expires_at": "2018-03-22T20:30:34Z",
"fields": "string",
"model": "activity",
"url": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/webhooks.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/webhooks.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/webhooks.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/webhooks.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /webhooks.json
Create a new Webhook
Outlines the parameters and data fields used when creating a new Webhook
Body parameter
{
"data": {
"expires_at": "2018-03-22T20:30:34Z",
"fields": "string",
"model": "activity",
"url": "string"
}
}
data:
expires_at: '2018-03-22T20:30:34Z'
fields: string
model: activity
url: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» expires_at | body | string(date-time) | false | The date and time when the Webhook will expire. (Expects an ISO-8601 timestamp). |
| »» fields | body | string | true | Fields to be included in the Webhook request. |
| »» model | body | string | true | What model the Webhook is for. |
| »» url | body | string | true | The URL of where to POST the Webhook. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »» model | activity |
| »» model | bill |
| »» model | calendar_entry |
| »» model | communication |
| »» model | contact |
| »» model | matter |
| »» model | task |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | WebhookShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Webhook#show
Code samples
# You can also use wget
curl -X GET /api/v4/webhooks/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/webhooks/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/webhooks/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/webhooks/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/webhooks/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/webhooks/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/webhooks/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /webhooks/{id}.json
Return the data for a single Webhook
Outlines the parameters, optional and required, used when requesting the data for a single Webhook
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the Webhook. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | WebhookShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Webhook#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/webhooks/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/webhooks/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/webhooks/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"expires_at": "2018-03-22T20:30:34Z",
"fields": "string",
"model": "activity",
"url": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/webhooks/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/webhooks/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/webhooks/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/webhooks/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /webhooks/{id}.json
Update a single Webhook
Outlines the parameters and data fields used when updating a single Webhook
Body parameter
{
"data": {
"expires_at": "2018-03-22T20:30:34Z",
"fields": "string",
"model": "activity",
"url": "string"
}
}
data:
expires_at: '2018-03-22T20:30:34Z'
fields: string
model: activity
url: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the Webhook. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» expires_at | body | string(date-time) | false | The date and time when the Webhook will expire. (Expects an ISO-8601 timestamp). |
| »» fields | body | string | false | Fields to be included in the Webhook request. |
| »» model | body | string | false | What model the Webhook is for. |
| »» url | body | string | false | The URL of where to POST the Webhook. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »» model | activity |
| »» model | bill |
| »» model | calendar_entry |
| »» model | communication |
| »» model | contact |
| »» model | matter |
| »» model | task |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | WebhookShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Webhook#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/webhooks/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/webhooks/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/webhooks/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/webhooks/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/webhooks/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/webhooks/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/webhooks/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /webhooks/{id}.json
Delete a single Webhook
Outlines the parameters, optional and required, used when deleting the record for a single Webhook
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the Webhook. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Document Archives
DocumentArchive#download
Code samples
# You can also use wget
curl -X GET /api/v4/document_archives/{id}/download.json
GET /api/v4/document_archives/{id}/download.json HTTP/1.1
Host: null
$.ajax({
url: '/api/v4/document_archives/{id}/download.json',
method: 'get',
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
fetch('/api/v4/document_archives/{id}/download.json',
{
method: 'GET'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
result = RestClient.get '/api/v4/document_archives/{id}/download.json',
params: {
}
p JSON.parse(result)
import requests
r = requests.get('/api/v4/document_archives/{id}/download.json', params={
)
print r.json()
URL obj = new URL("/api/v4/document_archives/{id}/download.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /document_archives/{id}/download.json
Download the DocumentArchive
Download the DocumentArchive
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer(int32) | true | The unique identifier for the DocumentArchive. |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 303 | See Other | See Other | None |
| 404 | Not Found | Not Found | None |
DocumentArchive#create
Code samples
# You can also use wget
curl -X POST /api/v4/document_archives.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/document_archives.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/document_archives.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"items": [
{
"id": 0,
"type": 0
}
]
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/document_archives.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/document_archives.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/document_archives.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/document_archives.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /document_archives.json
Create a new DocumentArchive
Outlines the parameters and data fields used when creating a new DocumentArchive
Body parameter
{
"data": {
"items": [
{
"id": 0,
"type": 0
}
]
}
}
data:
items:
- id: 0
type: 0
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» items | body | [object] | true | No description |
| »»» id | body | integer(int32) | true | The unique identifier for a single Document or Folder associated with the DocumentArchive. Use the keyword null to specify no association. |
| »»» type | body | integer(int32) | true | The type of the item to download |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | DocumentArchiveShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
DocumentArchive#show
Code samples
# You can also use wget
curl -X GET /api/v4/document_archives/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/document_archives/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/document_archives/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/document_archives/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/document_archives/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/document_archives/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/document_archives/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /document_archives/{id}.json
Return the data for a single DocumentArchive
Outlines the parameters, optional and required, used when requesting the data for a single DocumentArchive
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the DocumentArchive. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | DocumentArchiveShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Documents
Clio Documents are files uploaded to Clio. Files uploaded to Clio’s document integrations (e.g. Google Drive and Office365) are inaccessible through the API.
Uploading a new document
- Create a document to a parent that can refer to a
Matteror aFolder. Ensure to ask for the fields,idandlatest_document_version{uuid,put_url,put_headers}. Theput_urlis a signed URL with security credentials for uploading the document. Theput_headersare required request headers for uploading the document. Check out the example to upload a new document to the matter folder ofMatterwith id1:
If the extension is listed in the IANA Media Types registry Clio will apply the corresponding content type as determined by the file extension when content_type is blank. One of the nine possible content types content_type = “text” / “image” / “audio” / “video” / “application” / “font” / “model” / “message” / “multipart” must be submitted if the file type is uncommon, not listed in the IANA Media Types registry or not obvious from the extension.
Request
POST api/v4/documents?fields=id,latest_document_version{uuid,put_url,put_headers}
"data": {
"name": "file.jpg",
"parent": {
"id": 1,
"type": "Matter"
}
}
}
Response
{
"data": {
"id": 1234,
"latest_document_version": {
"uuid": "a51faa2c-859e-4c08-a996-2d0bb385df90",
"put_url": "https://s3-us-west-2.amazonaws.com/iris-production/uploads/document_version/file/a51faa2c-859e-4c08-a996-2d0bb385df90/file.jpg?X-Amz-Expires=28800&X-Amz-Date=20171024T214532Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOYDOZH6YP4VQLOA/20171024/us-west-2/s3/aws4_request&X-Amz-SignedHeaders=content-type%3Bhost%3Bx-amz-server-side-encryption&X-Amz-Signature=afe5000df0972d02884a2219f913bfa62fe2531c75b4fcd1edbcb84d267d2b8e",
"put_headers": [
{
"name": "x-amz-server-side-encryption",
"value": "AES256"
},
{
"name": "Content-Type",
"value": "image/jpeg"
}
]
}
}
}
- Upload the document to the
put_urlwith the headers fromputs_headersgiven in the response of the previous step. Typically the headers includeContent-Typeandx-amz-server-side-encryptionto match with the signature in theput_url. Check out the example to upload the file content using curl:bash curl -X PUT -T file.jpg -H "Content-Type: image/jpeg" -H "x-amz-server-side-encryption: AES256" "https://s3-us-west-2.amazonaws.com/iris-production/uploads/document_version/file/a51faa2c-859e-4c08-a996-2d0bb385df90/file.jpg?X-Amz-Expires=28800&X-Amz-Date=20171024T214532Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOYDOZH6YP4VQLOA/20171024/us-west-2/s3/aws4_request&X-Amz-SignedHeaders=content-type%3Bhost%3Bx-amz-server-side-encryption&X-Amz-Signature=afe5000df0972d02884a2219f913bfa62fe2531c75b4fcd1edbcb84d267d2b8e"If you need MD5 checksum, you should use multipart upload. - After successfully completing the upload, mark the document fully uploaded with
fully_uploadedastrue, anduuidgiven in the first step. Clio will verify if the file is uploaded successfully. If not, it raisesUploadNotFoundErrorerror. It is possible for the verification to time out, which will return anUploadTimeoutErrorerror. When that happens, you will need to retry the request. ```bash Request PATCH api/v4/documents/1234?fields=id,latest_document_version{fully_uploaded} "data": { "uuid": "a51faa2c-859e-4c08-a996-2d0bb385df90", "fully_uploaded": "true" } }
Response (success) { "data": { "id": 12345, "latest_document_version": { "fully_uploaded": true } } }
Response (error) { "error": { "type": "UploadNotFoundError", "message": "A matching remote file was not found for the file named file.jpg with UUID a51faa2c-859e-4c08-a996-2d0bb385df90" } }
Response (timeout) { "error": { "type": "UploadTimeoutError", "message": "A timeout occurred verifying the remote file file.jpg with UUID a51faa2c-859e-4c08-a996-2d0bb385df90. Please try the request again." } } ``` 4. The file is now visible in Clio documents and is available to the user for download.
Uploading a new document version
- It is same as uploading a new document to Clio except setting the
parentto an existingDocument. Check out the example to upload a new document version for the document with id1234:bash Request POST api/v4/documents?fields=id,latest_document_version{uuid,put_url,put_headers} "data": { "name": "file.jpg", "parent": { "id": 1234, "type": "Document" } } }The remaining steps are same as uploading a new document to Clio.
Uploading a document using multipart upload
- In general, when a file reaches 100 MB, you should consider using multipart upload instead of uploading in a single operation. Except the last part, each part should be at least 5 MB. Determine the number of file parts and split the file. Optionally, you may compute the base64-encoded 128-bit MD5 mechanism as an end-to-end integrity check for each file part. To determine the base64 MD5 checksum for a file part, you may use
openssl. Check out the example to split a big pdf and get the checksums of the file parts:bash split -b 31457280 big.pdf big.pdf. # break the file to max. 30MB size openssl md5 -binary big.pdf.aa | base64 # F16pda4G0h4lzH7d2/Jbdw== openssl md5 -binary big.pdf.ab | base64 # cRbxEG//GK9rIze5tdYzcg== openssl md5 -binary big.pdf.ac | base64 # Tck0KKU4SrmSp8hsSCuSYg== openssl md5 -binary big.pdf.ad | base64 # CrIt7lbZzVhMV7JzVTkUvw== - Create a document, specify
multipartsfor multipart upload, and ensure to ask for the fields,id, andlatest_document_version{uuid,multiparts}. Amultipartconsists ofpart_number,content_length, and optionalcontent_md5. In the response, aput_urlis appended to themultipart. Aput_urlis a signed URL with security credentials for uploading a file part. The signed URL expires in 8 hours. The API can handle maximum 50multipartsin one request. If the upload is split to more than 50 parts, make a PUT request withuuid,fully_uploadedasfalse, and another set ofmultiparts. It returns a set ofput_urlfor the specifiedmultiparts. Check out the example to upload a new document to the matter folder ofMatterwith id1: ```bash Request POST api/v4/documents?fields=id,latest_document_version{uuid,put_headers,multiparts} "data": { "name": "big.pdf", "parent": { "id": 1, "type": "Matter" } "multiparts": [ { "part_number": 1, "content_length": 31457280, "content_md5": "F16pda4G0h4lzH7d2/Jbdw==" }, { "part_number": 2, "content_length": 31457280, "content_md5": "cRbxEG//GK9rIze5tdYzcg==" }, { "part_number": 3, "content_length": 31457280, "content_md5": "Tck0KKU4SrmSp8hsSCuSYg==" }, { "part_number": 4, "content_length": 7316647, "content_md5": "CrIt7lbZzVhMV7JzVTkUvw==" } ] }
Response { "data": { "id": 1234, "latest_document_version": { "uuid": "eba78724-31e8-4529-b6e2-0f2eef6feeec", "put_headers": [ { "name": "x-amz-server-side-encryption", "value": "AES256" }, { "name": "Content-Type", "value": "application/pdf" } ], "multiparts": [ { "part_number": 1, "put_url": "https://s3-us-west-2.amazonaws.com/iris-production/uploads/document_version/file/eba78724-31e8-4529-b6e2-0f2eef6feeec/big.pdf?uploadId=XG9arnSRfpXVFj4NYCoj66e.iUtET050CFds7GGwb4_J6J26Ysgn_fLCK7pI5KRzJRmBOB_Oa.dle.nn4JLKos_cdRXN6f6Hb0IACkgiN6Wa2XGNv9fZQwgfqmMey1DN&partNumber=1&X-Amz-Expires=28800&X-Amz-Date=20171024T231538Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOYDOZH6YP4VQLOA/20171024/us-west-2/s3/aws4_request&X-Amz-SignedHeaders=content-length%3Bcontent-md5%3Bhost&X-Amz-Signature=f7b3f29e4aee3abfa93fb42a7969557a2a0d305d223dde641c78421b5a6d62e0", "put_headers": [ { "name": "Content-Length", "value": "31457280" }, { "name": "Content-MD5", "value": "F16pda4G0h4lzH7d2/Jbdw==" } ] }, { "part_number": 2, "put_url": "https://s3-us-west-2.amazonaws.com/iris-production/uploads/document_version/file/eba78724-31e8-4529-b6e2-0f2eef6feeec/big.pdf?uploadId=XG9arnSRfpXVFj4NYCoj66e.iUtET050CFds7GGwb4_J6J26Ysgn_fLCK7pI5KRzJRmBOB_Oa.dle.nn4JLKos_cdRXN6f6Hb0IACkgiN6Wa2XGNv9fZQwgfqmMey1DN&partNumber=2&X-Amz-Expires=28800&X-Amz-Date=20171024T231538Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOYDOZH6YP4VQLOA/20171024/us-west-2/s3/aws4_request&X-Amz-SignedHeaders=content-length%3Bcontent-md5%3Bhost&X-Amz-Signature=47dc30f90202654c13030ccce87e43622bb47e0ad155ae61f6b41e8097803950", "put_headers": [ { "name": "Content-Length", "value": "31457280" }, { "name": "Content-MD5", "value": "cRbxEG//GK9rIze5tdYzcg==" } ] }, { "part_number": 3, "put_url": "https://s3-us-west-2.amazonaws.com/iris-production/uploads/document_version/file/eba78724-31e8-4529-b6e2-0f2eef6feeec/big.pdf?uploadId=XG9arnSRfpXVFj4NYCoj66e.iUtET050CFds7GGwb4_J6J26Ysgn_fLCK7pI5KRzJRmBOB_Oa.dle.nn4JLKos_cdRXN6f6Hb0IACkgiN6Wa2XGNv9fZQwgfqmMey1DN&partNumber=3&X-Amz-Expires=28800&X-Amz-Date=20171024T231538Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOYDOZH6YP4VQLOA/20171024/us-west-2/s3/aws4_request&X-Amz-SignedHeaders=content-length%3Bcontent-md5%3Bhost&X-Amz-Signature=13ca827a73fb2c50e8062ef7e437cfe9158944d998e2770a2ffcd034be6c2fc7", "put_headers": [ { "name": "Content-Length", "value": "31457280" }, { "name": "Content-MD5", "value": "Tck0KKU4SrmSp8hsSCuSYg==" } ] }, { "part_number": 4, "put_url": "https://s3-us-west-2.amazonaws.com/iris-production/uploads/document_version/file/eba78724-31e8-4529-b6e2-0f2eef6feeec/big.pdf?uploadId=XG9arnSRfpXVFj4NYCoj66e.iUtET050CFds7GGwb4_J6J26Ysgn_fLCK7pI5KRzJRmBOB_Oa.dle.nn4JLKos_cdRXN6f6Hb0IACkgiN6Wa2XGNv9fZQwgfqmMey1DN&partNumber=4&X-Amz-Expires=28800&X-Amz-Date=20171024T231538Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOYDOZH6YP4VQLOA/20171024/us-west-2/s3/aws4_request&X-Amz-SignedHeaders=content-length%3Bcontent-md5%3Bhost&X-Amz-Signature=25773f971c4c663b3a87f4d35c5b4c5192c3c999c7efdd69a49bc5bc40677078", "put_headers": [ { "name": "Content-Length", "value": "7316647" }, { "name": "Content-MD5", "value": "CrIt7lbZzVhMV7JzVTkUvw==" } ] } ] } } } ```
- Upload each multipart to the corresponding
put_url. You can upload the parts independently and in any order. If transmission of any part fails, you can re-transmit that part without affecting other parts. Make sure to include the headers fromputs_headers. Typically the headers includeContent-Length, to match with the signature in theput_url. Check out the example using curl:bash curl -X PUT -T big.pdf.part1 -H "Content-Length: 31457280" "https://s3-us-west-2.amazonaws.com/iris-production/uploads/document_version/file/eba78724-31e8-4529-b6e2-0f2eef6feeec/big.pdf?uploadId=XG9arnSRfpXVFj4NYCoj66e.iUtET050CFds7GGwb4_J6J26Ysgn_fLCK7pI5KRzJRmBOB_Oa.dle.nn4JLKos_cdRXN6f6Hb0IACkgiN6Wa2XGNv9fZQwgfqmMey1DN&partNumber=1&X-Amz-Expires=28800&X-Amz-Date=20171024T231538Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOYDOZH6YP4VQLOA/20171024/us-west-2/s3/aws4_request&X-Amz-SignedHeaders=content-length%3Bcontent-md5%3Bhost&X-Amz-Signature=f7b3f29e4aee3abfa93fb42a7969557a2a0d305d223dde641c78421b5a6d62e0"
If you use MD5 checksum to validate the integrity of upload, include Content-MD5 in the header:
bash
curl -X PUT -T big.pdf.part1
-H "Content-Length: 31457280"
-H "Content-MD5: F16pda4G0h4lzH7d2/Jbdw=="
"https://s3-us-west-2.amazonaws.com/iris-production/uploads/document_version/file/eba78724-31e8-4529-b6e2-0f2eef6feeec/big.pdf?uploadId=XG9arnSRfpXVFj4NYCoj66e.iUtET050CFds7GGwb4_J6J26Ysgn_fLCK7pI5KRzJRmBOB_Oa.dle.nn4JLKos_cdRXN6f6Hb0IACkgiN6Wa2XGNv9fZQwgfqmMey1DN&partNumber=1&X-Amz-Expires=28800&X-Amz-Date=20171024T231538Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOYDOZH6YP4VQLOA/20171024/us-west-2/s3/aws4_request&X-Amz-SignedHeaders=content-length%3Bcontent-md5%3Bhost&X-Amz-Signature=f7b3f29e4aee3abfa93fb42a7969557a2a0d305d223dde641c78421b5a6d62e0"
If the file is invalid or the MD5 is invalid, you may get the following response:
bash
<Error>
<Code>BadDigest</Code>
<Message>The Content-MD5 you specified did not match what we received.</Message>
<ExpectedDigest>F16pda4G0h4lzH7d2/Jbdw==</ExpectedDigest>
<CalculatedDigest>Tck0KKU4SrmSp8hsSCuSYg==</CalculatedDigest>
<RequestId>85918626116672DD</RequestId>
<HostId>AbAoiqYqn8tKwS6gxwI3pc4u02B6u6ORa6MPEJH7IYljBweZp0M8L7Lg2AFOvHxdHz5TwlQpkVs=</HostId>
</Error>
After the issue is corrected, try to upload to the file part to the put_url again.
- After successfully completing the upload of all the file parts, mark the document fully uploaded with
fully_uploadedastrue, anduuidgiven in the first step. Clio will verify if the file is uploaded successfully. If not, it raisesUploadNotFoundErrorerror. It is possible for the verification to time out, which will return anUploadTimeoutErrorerror. When that happens, you will need to retry the request. ```bash Request PATCH api/v4/documents/1234?fields=id,latest_document_version{fully_uploaded} "data": { "uuid": "eba78724-31e8-4529-b6e2-0f2eef6feeec", "fully_uploaded": "true" } }
Response (success) { "data": { "id": 12345, "latest_document_version": { "fully_uploaded": true } } }
Response (error) { "error": { "type": "UploadNotFoundError", "message": "A matching remote file was not found for the file named file.jpg with UUID a51faa2c-859e-4c08-a996-2d0bb385df90" } }
Response (timeout) { "error": { "type": "UploadTimeoutError", "message": "A timeout occurred verifying the remote file file.jpg with UUID a51faa2c-859e-4c08-a996-2d0bb385df90. Please try the request again." } } ``` 5. The file is now visible in Clio documents and is available to the user for download.
Uploading a new document version using multipart upload
- It is same as splitting and uploading a new document using multipart upload, except setting the
parentto an existingDocument. Check out the example to upload a new document version for the document with id1234:bash Request POST api/v4/documents?fields=id,latest_document_version{uuid,put_headers,multiparts} "data": { "name": "big.pdf", "parent": { "id": 1234, "type": "Document" } "multiparts": [ { "part_number": 1, "content_length": 31457280, "content_md5": "F16pda4G0h4lzH7d2/Jbdw==" }, { "part_number": 2, "content_length": 31457280, "content_md5": "cRbxEG//GK9rIze5tdYzcg==" }, { "part_number": 3, "content_length": 31457280, "content_md5": "Tck0KKU4SrmSp8hsSCuSYg==" }, { "part_number": 4, "content_length": 7316647, "content_md5": "CrIt7lbZzVhMV7JzVTkUvw==" } ] }The remaining steps are same as uploading a new document to Clio.
Document#download
Code samples
# You can also use wget
curl -X GET /api/v4/documents/{id}/download.json
GET /api/v4/documents/{id}/download.json HTTP/1.1
Host: null
$.ajax({
url: '/api/v4/documents/{id}/download.json',
method: 'get',
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
fetch('/api/v4/documents/{id}/download.json',
{
method: 'GET'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
result = RestClient.get '/api/v4/documents/{id}/download.json',
params: {
}
p JSON.parse(result)
import requests
r = requests.get('/api/v4/documents/{id}/download.json', params={
)
print r.json()
URL obj = new URL("/api/v4/documents/{id}/download.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /documents/{id}/download.json
Download the Document
Download the Document
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| document_version_id | query | integer(int32) | false | The unique identifier for a DocumentVersion to be downloaded. Defaults to the latest. |
| id | path | integer(int32) | true | The unique identifier for the Document. |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 303 | See Other | See Other | None |
| 404 | Not Found | Not Found | None |
Document#index
Code samples
# You can also use wget
curl -X GET /api/v4/documents.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/documents.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/documents.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/documents.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/documents.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/documents.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/documents.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /documents.json
Return the data for all Documents
Outlines the parameters, optional and required, used when requesting the data for all Documents
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| contact_id | query | integer(int32) | false | The unique identifier for a single Contact. Use the keyword null to match those without a Document. The list will be filtered to include only the Document records with the matching property. |
| created_since | query | string(date-time) | false | Filter Document records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| document_category_id | query | integer(int32) | false | The unique identifier for a single DocumentCategory. Use the keyword null to match those without a Document. The list will be filtered to include only the Document records with the matching property. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| ids[] | query | integer(int32) | false | Filter Document records to those having the specified unique identifiers |
| include_deleted | query | boolean | false | Allow trashed Document record to be included. |
| limit | query | integer(int32) | false | A limit on the number of Document records to be returned. Limit can range between 1 and 200. Default: 200. |
| matter_id | query | integer(int32) | false | The unique identifier for a single Matter. Use the keyword null to match those without a Document. The list will be filtered to include only the Document records with the matching property. |
| order | query | string | false | Orders the Document records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| query | query | string | false | Wildcard search for name matching the given string. |
| show_uncompleted | query | boolean | false | Allow Document record being uploaded to be included. |
| updated_since | query | string(date-time) | false | Filter Document records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | id(asc) |
| order | id(desc) |
| order | name(asc) |
| order | name(desc) |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | DocumentList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Document#create
Code samples
# You can also use wget
curl -X POST /api/v4/documents.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/documents.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/documents.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"content_type": "string",
"document_category": {
"id": 0
},
"filename": "name",
"multiparts": [
{
"part_number": 0,
"content_length": "string",
"content_md5": "string"
}
],
"name": "string",
"parent": {
"type": "Document",
"id": 0
},
"received_at": "2018-03-22T20:30:34Z"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/documents.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/documents.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/documents.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/documents.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /documents.json
Create a new Document
Create a Document, or Create Document Version to an existing Document.
Body parameter
{
"data": {
"content_type": "string",
"document_category": {
"id": 0
},
"filename": "name",
"multiparts": [
{
"part_number": 0,
"content_length": "string",
"content_md5": "string"
}
],
"name": "string",
"parent": {
"type": "Document",
"id": 0
},
"received_at": "2018-03-22T20:30:34Z"
}
}
data:
content_type: string
document_category:
id: 0
filename: name
multiparts:
- part_number: 0
content_length: string
content_md5: string
name: string
parent:
type: Document
id: 0
received_at: '2018-03-22T20:30:34Z'
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» content_type | body | string | false | A standard MIME type describing the format of the object data. If the field is not specified, it is determined by the file extension. |
| »» document_category | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single DocumentCategory associated with the Document. Use the keyword null to specify no association. |
| »» filename | body | string | false | Name of the original file. |
| »» multiparts | body | [object] | false | No description |
| »»» part_number | body | integer(int32) | true | The part number of multipart upload. It must be an integer between 1 to 10,000, inclusive. |
| »»» content_length | body | string | true | The size of the part of the upload file in bytes. |
| »»» content_md5 | body | string | false | The base64-encoded 128-bit MD5 digest of the part data. This header can be used as a message integrity check to verify that the part data is the same data that was originally sent. Although it is optional, we recommend using the Content-MD5 mechanism as an end-to-end integrity check. |
| »» name | body | string | true | Document name. |
| »» parent | body | object | true | No description |
| »»» type | body | string | true | Type of parent object: |
| »»» id | body | integer(int32) | true | The unique identifier of the parent object. |
| »» received_at | body | string(date-time) | false | Date and time the document was received (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
»»» part_number: The part number of multipart upload. It must be an integer between 1 to 10,000, inclusive.
Multipart upload supports upload a single file as a set of parts.
Each part is a contiguous portion of the data.
A part_number uniquely identifies a part and also defines its position within the document being uploaded.
Each part must be at least 5 MB in size, except the last part.
There is no minimum size limit on the last part.
The URLs of multipart upload are returned in the field, put_url, with the corresponding multipart
The API handles maximum 50 multiparts in one request. If the upload is split to more than 50 parts,
make a PUT request with fully_uploaded equal to false, and another set of part numbers.
»»» type: Type of parent object: * "Document" represents an existing Clio document. It is specified when you provide a new revision (or document version) to an existing document. * "Folder" represents a specified folder on Clio by folder id. It if specified when you add / move an item to a folder. * "Matter" represents a matter folder on Clio identified by matter id. It is specified when you add / move an item to a matter folder.
Enumerated Values
| Parameter | Value |
|---|---|
| »»» type | Document |
| »»» type | Folder |
| »»» type | Matter |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | DocumentShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Document#show
Code samples
# You can also use wget
curl -X GET /api/v4/documents/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/documents/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/documents/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/documents/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/documents/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/documents/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/documents/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /documents/{id}.json
Return the data for a single Document
Outlines the parameters, optional and required, used when requesting the data for a single Document
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the Document. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | DocumentShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Document#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/documents/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/documents/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/documents/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"document_category": {
"id": 0
},
"fully_uploaded": true,
"multiparts": [
{
"part_number": 0,
"content_length": "string",
"content_md5": "string"
}
],
"name": "string",
"parent": {
"type": "Document",
"id": 0
},
"received_at": "2018-03-22T20:30:34Z",
"uuid": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/documents/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/documents/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/documents/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/documents/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /documents/{id}.json
Update a single Document
Update Document, move Document to another Folder, and/or restore a trashed Document.
Body parameter
{
"data": {
"document_category": {
"id": 0
},
"fully_uploaded": true,
"multiparts": [
{
"part_number": 0,
"content_length": "string",
"content_md5": "string"
}
],
"name": "string",
"parent": {
"type": "Document",
"id": 0
},
"received_at": "2018-03-22T20:30:34Z",
"uuid": "string"
}
}
data:
document_category:
id: 0
fully_uploaded: true
multiparts:
- part_number: 0
content_length: string
content_md5: string
name: string
parent:
type: Document
id: 0
received_at: '2018-03-22T20:30:34Z'
uuid: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the Document. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» document_category | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single DocumentCategory associated with the Document. Use the keyword null to specify no association. |
| »» fully_uploaded | body | boolean | false | Indicates whether document is uploaded. |
| »» multiparts | body | [object] | false | No description |
| »»» part_number | body | integer(int32) | false | The part number of multipart upload. It must be an integer between 1 to 10,000, inclusive. |
| »»» content_length | body | string | false | The size of the part of the upload file in bytes. |
| »»» content_md5 | body | string | false | The base64-encoded 128-bit MD5 digest of the part data. This header can be used as a message integrity check to verify that the part data is the same data that was originally sent. Although it is optional, we recommend using the Content-MD5 mechanism as an end-to-end integrity check. |
| »» name | body | string | false | Document name. |
| »» parent | body | object | false | No description |
| »»» type | body | string | false | Type of parent object: |
| »»» id | body | integer(int32) | false | The unique identifier of the parent object. |
| »» received_at | body | string(date-time) | false | Date and time the document was received (Expects an ISO-8601 timestamp). |
| »» uuid | body | string | false | UUID associated with the document version. UUID is required to mark a document fully uploaded. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
»» fully_uploaded: Indicates whether document is uploaded.
When marking the document fully uploaded, it arises errors when: * The file is not successfully uploaded. * Not all the file parts are uploaded. * The document is already marked as fully uploaded.
»»» part_number: The part number of multipart upload. It must be an integer between 1 to 10,000, inclusive.
Multipart upload supports upload a single file as a set of parts.
Each part is a contiguous portion of the data.
A part_number uniquely identifies a part and also defines its position within the document being uploaded.
Each part must be at least 5 MB in size, except the last part.
There is no minimum size limit on the last part.
The URLs of multipart upload are returned in the field, put_url, with the corresponding multipart
The API handles maximum 50 multiparts in one request. If the upload is split to more than 50 parts,
make a PUT request with fully_uploaded equal to false, and another set of part numbers.
»»» type: Type of parent object: * "Document" represents an existing Clio document. It is specified when you provide a new revision (or document version) to an existing document. * "Folder" represents a specified folder on Clio by folder id. It if specified when you add / move an item to a folder. * "Matter" represents a matter folder on Clio identified by matter id. It is specified when you add / move an item to a matter folder.
Enumerated Values
| Parameter | Value |
|---|---|
| »»» type | Document |
| »»» type | Folder |
| »»» type | Matter |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | DocumentShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Document#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/documents/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/documents/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/documents/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/documents/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/documents/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/documents/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/documents/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /documents/{id}.json
Delete a single Document
Deleting a Document using this method will move it to the trash instead of permanently deleting it. Trashed Documents are permanently deleted after 30 days.
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the Document. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Document Automations
Document Automation uses Document Templates to create standardized documents. Users select a Document Template (that they have created and uploaded) and a Matter to automatically create a document using information from that Matter (such as addresses, account balances, Matter names, etc.).
Documents generated using Document Automation are created using Drawloop, a trusted Clio partner, and are sent through Drawloop’s U.S. servers.
DocumentAutomation#index
Code samples
# You can also use wget
curl -X GET /api/v4/document_automations.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/document_automations.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/document_automations.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/document_automations.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/document_automations.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/document_automations.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/document_automations.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /document_automations.json
Return the data for all DocumentAutomations
Outlines the parameters, optional and required, used when requesting the data for all DocumentAutomations
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| created_since | query | string(date-time) | false | Filter DocumentAutomation records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| ids[] | query | integer(int32) | false | Filter DocumentAutomation records to those having the specified unique identifiers |
| limit | query | integer(int32) | false | A limit on the number of DocumentAutomation records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the DocumentAutomation records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| updated_since | query | string(date-time) | false | Filter DocumentAutomation records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | id(asc) |
| order | id(desc) |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | DocumentAutomationList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
DocumentAutomation#create
Code samples
# You can also use wget
curl -X POST /api/v4/document_automations.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string'
POST /api/v4/document_automations.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/document_automations.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"document_template": {
"id": 0
},
"filename": "string",
"formats|": "pdf",
"matter": {
"id": 0
}
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
fetch('/api/v4/document_automations.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string'
}
result = RestClient.post '/api/v4/document_automations.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string'
}
r = requests.post('/api/v4/document_automations.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/document_automations.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /document_automations.json
Create a new DocumentAutomation
Outlines the parameters and data fields used when creating a new DocumentAutomation
Body parameter
{
"data": {
"document_template": {
"id": 0
},
"filename": "string",
"formats|": "pdf",
"matter": {
"id": 0
}
}
}
data:
document_template:
id: 0
filename: string
formats|: pdf
matter:
id: 0
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» document_template | body | object | true | No description |
| »»» id | body | integer(int32) | true | The unique identifier for a single DocumentTemplate associated with the DocumentAutomation. The keyword null is not valid for this field. |
| »» filename | body | string | true | The filename the generated document should have. |
| »» formats | body | string | true | |
| »» matter | body | object | true | No description |
| »»» id | body | integer(int32) | true | The unique identifier for a single Matter associated with the DocumentAutomation. The keyword null is not valid for this field. |
Enumerated Values
| Parameter | Value |
|---|---|
| »» formats | |
| »» formats |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | DocumentAutomationShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
DocumentAutomation#show
Code samples
# You can also use wget
curl -X GET /api/v4/document_automations/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/document_automations/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/document_automations/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/document_automations/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/document_automations/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/document_automations/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/document_automations/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /document_automations/{id}.json
Return the data for a single DocumentAutomation
Outlines the parameters, optional and required, used when requesting the data for a single DocumentAutomation
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the DocumentAutomation. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | DocumentAutomationShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Document Categories
Clio users can add Document Categories to their account to help organize their Documents. When a Document is uploaded or edited, a Document Category can be assigned. Users can filter by Document Category to show all Documents in a certain category across all of the account’s Matters.
DocumentCategory#index
Code samples
# You can also use wget
curl -X GET /api/v4/document_categories.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/document_categories.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/document_categories.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/document_categories.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/document_categories.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/document_categories.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/document_categories.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /document_categories.json
Return the data for all DocumentCategories
Outlines the parameters, optional and required, used when requesting the data for all DocumentCategories
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| limit | query | integer(int32) | false | A limit on the number of DocumentCategory records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the DocumentCategory records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| query | query | string | false | Wildcard search for name matching a given string. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | id(asc) |
| order | id(desc) |
| query | name |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | DocumentCategoryList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
DocumentCategory#create
Code samples
# You can also use wget
curl -X POST /api/v4/document_categories.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/document_categories.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/document_categories.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"name": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/document_categories.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/document_categories.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/document_categories.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/document_categories.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /document_categories.json
Create a new DocumentCategory
Outlines the parameters and data fields used when creating a new DocumentCategory
Body parameter
{
"data": {
"name": "string"
}
}
data:
name: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» name | body | string | true | What the DocumentCategory should be called. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | DocumentCategoryShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
DocumentCategory#show
Code samples
# You can also use wget
curl -X GET /api/v4/document_categories/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/document_categories/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/document_categories/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/document_categories/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/document_categories/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/document_categories/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/document_categories/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /document_categories/{id}.json
Return the data for a single DocumentCategory
Outlines the parameters, optional and required, used when requesting the data for a single DocumentCategory
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the DocumentCategory. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | DocumentCategoryShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
DocumentCategory#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/document_categories/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/document_categories/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/document_categories/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"name": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/document_categories/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/document_categories/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/document_categories/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/document_categories/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /document_categories/{id}.json
Update a single DocumentCategory
Outlines the parameters and data fields used when updating a single DocumentCategory
Body parameter
{
"data": {
"name": "string"
}
}
data:
name: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the DocumentCategory. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» name | body | string | false | What the DocumentCategory should be called. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | DocumentCategoryShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
DocumentCategory#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/document_categories/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/document_categories/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/document_categories/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/document_categories/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/document_categories/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/document_categories/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/document_categories/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /document_categories/{id}.json
Delete a single DocumentCategory
Outlines the parameters, optional and required, used when deleting the record for a single DocumentCategory
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the DocumentCategory. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Document Templates
Document Templates are files used to create standardized documents using Clio’s Document Automation feature. Document Templates contain merge fields, which are used to pull information from Clio into the document being generated by Document Automation.
The supported formats are doc, docx, ppt, pptx, xls, xlsx, pdf and xml.
DocumentTemplate#download
Code samples
# You can also use wget
curl -X GET /api/v4/document_templates/{id}/download.json
GET /api/v4/document_templates/{id}/download.json HTTP/1.1
Host: null
$.ajax({
url: '/api/v4/document_templates/{id}/download.json',
method: 'get',
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
fetch('/api/v4/document_templates/{id}/download.json',
{
method: 'GET'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
result = RestClient.get '/api/v4/document_templates/{id}/download.json',
params: {
}
p JSON.parse(result)
import requests
r = requests.get('/api/v4/document_templates/{id}/download.json', params={
)
print r.json()
URL obj = new URL("/api/v4/document_templates/{id}/download.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /document_templates/{id}/download.json
Get the contents of the DocumentTemplate
Get the contents of the DocumentTemplate
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer(int32) | true | The unique identifier for the DocumentTemplate. |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 303 | See Other | See Other | None |
| 404 | Not Found | Not Found | None |
DocumentTemplate#index
Code samples
# You can also use wget
curl -X GET /api/v4/document_templates.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/document_templates.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/document_templates.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/document_templates.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/document_templates.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/document_templates.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/document_templates.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /document_templates.json
Return the data for all DocumentTemplates
Outlines the parameters, optional and required, used when requesting the data for all DocumentTemplates
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| created_since | query | string(date-time) | false | Filter DocumentTemplate records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| ids[] | query | integer(int32) | false | Filter DocumentTemplate records to those having the specified unique identifiers |
| limit | query | integer(int32) | false | A limit on the number of DocumentTemplate records to be returned. Limit can range between 1 and 200. Default: 200. |
| order | query | string | false | Orders the DocumentTemplate records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| updated_since | query | string(date-time) | false | Filter DocumentTemplate records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | id(asc) |
| order | id(desc) |
| order | filename(asc) |
| order | filename(desc) |
| order | category.name(asc) |
| order | category.name(desc) |
| order | last_modified(asc) |
| order | last_modified(desc) |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | DocumentTemplateList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
DocumentTemplate#create
Code samples
# You can also use wget
curl -X POST /api/v4/document_templates.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string'
POST /api/v4/document_templates.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/document_templates.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"document_category": {
"id": 0
},
"file": "string",
"filename": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
fetch('/api/v4/document_templates.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string'
}
result = RestClient.post '/api/v4/document_templates.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string'
}
r = requests.post('/api/v4/document_templates.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/document_templates.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /document_templates.json
Create a new DocumentTemplate
Outlines the parameters and data fields used when creating a new DocumentTemplate
Body parameter
{
"data": {
"document_category": {
"id": 0
},
"file": "string",
"filename": "string"
}
}
data:
document_category:
id: 0
file: string
filename: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» document_category | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single DocumentCategory associated with the DocumentTemplate. The keyword null is not valid for this field. |
| »» file | body | string | true | A file that contains the DocumentTemplate. The file can be uploaded through a form as application/x-www-form-urlencoded or multipart/form-data request. |
| »» filename | body | string | false | The name of the file. The field is required when the file is BASE64-encoded string. |
Detailed descriptions
»» file: A file that contains the DocumentTemplate. The file can be uploaded through a form as application/x-www-form-urlencoded or multipart/form-data request. Alternatively, the file can be converted to a BASE64-encoded string and serialized to JSON.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | DocumentTemplateShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
DocumentTemplate#show
Code samples
# You can also use wget
curl -X GET /api/v4/document_templates/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/document_templates/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/document_templates/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/document_templates/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/document_templates/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/document_templates/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/document_templates/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /document_templates/{id}.json
Return the data for a single DocumentTemplate
Outlines the parameters, optional and required, used when requesting the data for a single DocumentTemplate
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the DocumentTemplate. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | DocumentTemplateShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
DocumentTemplate#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/document_templates/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string'
PATCH /api/v4/document_templates/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/document_templates/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"document_category": {
"id": 0
},
"file": "string",
"filename": "string"
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string'
};
fetch('/api/v4/document_templates/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string'
}
result = RestClient.patch '/api/v4/document_templates/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string'
}
r = requests.patch('/api/v4/document_templates/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/document_templates/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /document_templates/{id}.json
Update a single DocumentTemplate
Outlines the parameters and data fields used when updating a single DocumentTemplate
Body parameter
{
"data": {
"document_category": {
"id": 0
},
"file": "string",
"filename": "string"
}
}
data:
document_category:
id: 0
file: string
filename: string
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the DocumentTemplate. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» document_category | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single DocumentCategory associated with the DocumentTemplate. The keyword null is not valid for this field. |
| »» file | body | string | false | A file that contains the DocumentTemplate. The file can be uploaded through a form as application/x-www-form-urlencoded or multipart/form-data request. |
| »» filename | body | string | false | The name of the file. The field is required when the file is BASE64-encoded string. |
Detailed descriptions
»» file: A file that contains the DocumentTemplate. The file can be uploaded through a form as application/x-www-form-urlencoded or multipart/form-data request. Alternatively, the file can be converted to a BASE64-encoded string and serialized to JSON.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | DocumentTemplateShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
DocumentTemplate#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/document_templates/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/document_templates/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/document_templates/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/document_templates/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/document_templates/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/document_templates/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/document_templates/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /document_templates/{id}.json
Delete a single DocumentTemplate
Outlines the parameters, optional and required, used when deleting the record for a single DocumentTemplate
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the DocumentTemplate. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Folders
Files stored in Clio’s Documents section are organized in folders. Folders are automatically generated for new Contacts and Matters. Folders can also be manually created anywhere in the folder structure.
Folder#list
Code samples
# You can also use wget
curl -X GET /api/v4/folders/list.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/folders/list.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/folders/list.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/folders/list.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/folders/list.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/folders/list.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/folders/list.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /folders/list.json
Return the data of the contents a Folder
Return the data of the contents of a Folder.
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| contact_id | query | integer(int32) | false | The unique identifier for a single Contact. Use the keyword null to match those without a Folder. The list will be filtered to include only the Folder records with the matching property. |
| created_since | query | string(date-time) | false | Filter Folder records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| document_category_id | query | integer(int32) | false | The unique identifier for a single DocumentCategory. Use the keyword null to match those without a Folder. The list will be filtered to include only the Folder records with the matching property. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| ids[] | query | integer(int32) | false | Filter Folder records to those having the specified unique identifiers |
| include_deleted | query | boolean | false | Allow trashed Folder record to be included. |
| limit | query | integer(int32) | false | A limit on the number of Folder records to be returned. Limit can range between 1 and 200. Default: 200. |
| matter_id | query | integer(int32) | false | The unique identifier for a single Matter. Use the keyword null to match those without a Folder. The list will be filtered to include only the Folder records with the matching property. |
| order | query | string | false | Orders the Folder records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| parent_id | query | integer(int32) | false | The unique identifier for a single Folder. The keyword null is not valid for this field. If no Folder is provided, it will default to the account's root Folder. |
| query | query | string | false | Wildcard search for name matching the given string. |
| show_uncompleted | query | boolean | false | Allow Folder record being uploaded to be included. |
| updated_since | query | string(date-time) | false | Filter Folder records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | id(asc) |
| order | id(desc) |
| order | name(asc) |
| order | name(desc) |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | ItemList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Folder#index
Code samples
# You can also use wget
curl -X GET /api/v4/folders.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
GET /api/v4/folders.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/folders.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/folders.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.get '/api/v4/folders.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.get('/api/v4/folders.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/folders.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /folders.json
Return the data for all Folders
Outlines the parameters, optional and required, used when requesting the data for all Folders
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| contact_id | query | integer(int32) | false | The unique identifier for a single Contact. Use the keyword null to match those without a Folder. The list will be filtered to include only the Folder records with the matching property. |
| created_since | query | string(date-time) | false | Filter Folder records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp). |
| document_category_id | query | integer(int32) | false | The unique identifier for a single DocumentCategory. Use the keyword null to match those without a Folder. The list will be filtered to include only the Folder records with the matching property. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| ids[] | query | integer(int32) | false | Filter Folder records to those having the specified unique identifiers |
| include_deleted | query | boolean | false | Allow trashed Folder record to be included. |
| limit | query | integer(int32) | false | A limit on the number of Folder records to be returned. Limit can range between 1 and 200. Default: 200. |
| matter_id | query | integer(int32) | false | The unique identifier for a single Matter. Use the keyword null to match those without a Folder. The list will be filtered to include only the Folder records with the matching property. |
| order | query | string | false | Orders the Folder records by the given field. Default: id(asc). |
| page_token | query | integer(int32) | false | A token specifying which page to return. |
| query | query | string | false | Wildcard search for name matching the given string. |
| updated_since | query | string(date-time) | false | Filter Folder records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp). |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| order | id(asc) |
| order | id(desc) |
| order | name(asc) |
| order | name(desc) |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | FolderList |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Folder#create
Code samples
# You can also use wget
curl -X POST /api/v4/folders.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
POST /api/v4/folders.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/folders.json',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"document_category": {
"id": 0
},
"name": "string",
"parent": {
"id": 0,
"type": "Folder"
},
"restore": true
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/folders.json',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.post '/api/v4/folders.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.post('/api/v4/folders.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/folders.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
POST /folders.json
Create a new Folder
Create a Folder to an existing folder.
Body parameter
{
"data": {
"document_category": {
"id": 0
},
"name": "string",
"parent": {
"id": 0,
"type": "Folder"
},
"restore": true
}
}
data:
document_category:
id: 0
name: string
parent:
id: 0
type: Folder
restore: true
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» document_category | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single DocumentCategory associated with the Folder. Use the keyword null to specify no association. |
| »» name | body | string | true | Name of the Folder |
| »» parent | body | object | true | No description |
| »»» id | body | integer(int32) | true | The unique identifier for a single Folder or Matter associated with the Folder. The keyword null is not valid for this field. |
| »»» type | body | string | true | Type of parent object. |
| »» restore | body | boolean | false | Whether or not a trashed Folder should be restored. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »»» type | Folder |
| »»» type | Matter |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | FolderShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Folder#show
Code samples
# You can also use wget
curl -X GET /api/v4/folders/{id}.json \
-H 'Accept: */*' \
-H 'IF_MODIFIED_SINCE: 2018-03-22' \
-H 'IF_NONE_MATCH: string' \
-H 'X-API-VERSION: string'
GET /api/v4/folders/{id}.json HTTP/1.1
Host: null
Accept: */*
IF_MODIFIED_SINCE: 2018-03-22
IF_NONE_MATCH: string
X-API-VERSION: string
var headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
$.ajax({
url: '/api/v4/folders/{id}.json',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'IF_MODIFIED_SINCE':'2018-03-22',
'IF_NONE_MATCH':'string',
'X-API-VERSION':'string'
};
fetch('/api/v4/folders/{id}.json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'IF_MODIFIED_SINCE' => '2018-03-22',
'IF_NONE_MATCH' => 'string',
'X-API-VERSION' => 'string'
}
result = RestClient.get '/api/v4/folders/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'IF_MODIFIED_SINCE': '2018-03-22',
'IF_NONE_MATCH': 'string',
'X-API-VERSION': 'string'
}
r = requests.get('/api/v4/folders/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/folders/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
GET /folders/{id}.json
Return the data for a single Folder
Outlines the parameters, optional and required, used when requesting the data for a single Folder
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| IF_MODIFIED_SINCE | header | string(date) | false | The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp). |
| IF_NONE_MATCH | header | string | false | The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed. |
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| id | path | integer(int32) | true | The unique identifier for the Folder. |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | FolderShow |
| 304 | Not Modified | Not Modified | None |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Folder#update
Code samples
# You can also use wget
curl -X PATCH /api/v4/folders/{id}.json \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
PATCH /api/v4/folders/{id}.json HTTP/1.1
Host: null
Content-Type: multipart/form-data
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/folders/{id}.json',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const inputBody = '{
"data": {
"document_category": {
"id": 0
},
"name": "string",
"parent": {
"id": 0,
"type": "Folder"
},
"restore": true
}
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/folders/{id}.json',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.patch '/api/v4/folders/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.patch('/api/v4/folders/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/folders/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
PATCH /folders/{id}.json
Update a single Folder
Update Folder, move Folder to another Folder, and/or restore a trashed Folder.
Body parameter
{
"data": {
"document_category": {
"id": 0
},
"name": "string",
"parent": {
"id": 0,
"type": "Folder"
},
"restore": true
}
}
data:
document_category:
id: 0
name: string
parent:
id: 0
type: Folder
restore: true
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| id | path | integer(int32) | true | The unique identifier for the Folder. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| fields | query | string | false | The fields to be returned. See response samples for what fields are available. For more information see the fields section. |
| body | body | object | false | JSON body |
| » data | body | object | true | No description |
| »» document_category | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single DocumentCategory associated with the Folder. Use the keyword null to specify no association. |
| »» name | body | string | false | Name of the Folder |
| »» parent | body | object | false | No description |
| »»» id | body | integer(int32) | false | The unique identifier for a single Folder or Matter associated with the Folder. The keyword null is not valid for this field. |
| »»» type | body | string | false | Type of parent object. |
| »» restore | body | boolean | false | Whether or not a trashed Folder should be restored. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Enumerated Values
| Parameter | Value |
|---|---|
| »»» type | Folder |
| »»» type | Matter |
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | FolderShow |
| 400 | Bad Request | Bad Request | Error |
| 401 | Unauthorized | Unauthorized | Error |
| 403 | Forbidden | Forbidden | Error |
| 404 | Not Found | Not Found | Error |
| 422 | Unprocessable Entity | Unprocessable Entity | Error |
| 429 | Too Many Requests | Too Many Requests | Error |
Folder#destroy
Code samples
# You can also use wget
curl -X DELETE /api/v4/folders/{id}.json \
-H 'Accept: */*' \
-H 'X-API-VERSION: string' \
-H 'X-BULK: true'
DELETE /api/v4/folders/{id}.json HTTP/1.1
Host: null
Accept: */*
X-API-VERSION: string
X-BULK: true
var headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
$.ajax({
url: '/api/v4/folders/{id}.json',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'*/*',
'X-API-VERSION':'string',
'X-BULK':'true'
};
fetch('/api/v4/folders/{id}.json',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'X-API-VERSION' => 'string',
'X-BULK' => 'true'
}
result = RestClient.delete '/api/v4/folders/{id}.json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'X-API-VERSION': 'string',
'X-BULK': 'true'
}
r = requests.delete('/api/v4/folders/{id}.json', params={
}, headers = headers)
print r.json()
URL obj = new URL("/api/v4/folders/{id}.json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
DELETE /folders/{id}.json
Delete a single Folder
Deleting a Folder using this method will move it to the trash instead of permanently deleting it. Trashed Folders are permanently deleted after 30 days.
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| X-API-VERSION | header | string | false | The API minor version. Default: latest version. |
| X-BULK | header | boolean | false | An indicator if bulk actions should be performed. |
| id | path | integer(int32) | true | The unique identifier for the Folder. |
Detailed descriptions
X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.
Example responses
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | None |
| 403 | Forbidden | Forbidden | Error |
Schemas
ErrorDetail
{
"type": "string",
"message": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| type | string | true | Unique name for the error |
| message | string | true | Detailed message about the error |
Error
{
"error": {
"type": "string",
"message": "string"
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| error | ErrorDetail | true | No description |
IdsResponse
{
"data": [
0
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [integer] | true | A list of ids |
Webhook_base
{
"id": 0,
"url": "string",
"fields": "string",
"shared_secret": "string",
"model": "activity",
"status": "pending",
"expires_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Webhook |
| url | string | false | The URL to send the data when the events are triggered |
| fields | string | false | Fields to be included in the webhook request |
| shared_secret | string | false | A shared secret used to create a signature for the payload |
| model | string | false | What kind of records the webhook is for |
| status | string | false | The current status of the webhook. |
| expires_at | string(date-time) | false | The time webhook will expire (as a ISO-8601 timestamp) |
| created_at | string(date-time) | false | The time the Webhook was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the Webhook was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| model | activity |
| model | bill |
| model | calendar_entry |
| model | communication |
| model | contact |
| model | matter |
| model | task |
| status | pending |
| status | enabled |
| status | suspended |
Webhook
{
"id": 0,
"url": "string",
"fields": "string",
"shared_secret": "string",
"model": "activity",
"status": "pending",
"expires_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Webhook_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » user | User_base | false | No description |
WebhookShow
{
"data": {
"id": 0,
"url": "string",
"fields": "string",
"shared_secret": "string",
"model": "activity",
"status": "pending",
"expires_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | Webhook | true | No description |
WebhookList
{
"data": [
{
"id": 0,
"url": "string",
"fields": "string",
"shared_secret": "string",
"model": "activity",
"status": "pending",
"expires_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [Webhook] | true | Webhook List Response |
TrustLineItem_base
{
"id": 0,
"etag": "string",
"date": "2018-03-22",
"total": 0,
"note": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the TrustLineItem |
| etag | string | false | ETag for the TrustLineItem |
| date | string(date) | false | The date of the TrustLineItem (as a ISO-8601 date) |
| total | number(double) | false | The total amount for the TrustLineItem |
| note | string | false | Note for the TrustLineItem |
| created_at | string(date-time) | false | The time the TrustLineItem was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the TrustLineItem was last updated (as a ISO-8601 timestamp) |
TrustLineItem
{
"id": 0,
"etag": "string",
"date": "2018-03-22",
"total": 0,
"note": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"bill": {
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"client": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | TrustLineItem_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » bill | Bill_base | false | No description |
| » matter | Matter_base | false | No description |
| » client | Contact_base | false | No description |
TrustLineItemShow
{
"data": {
"id": 0,
"etag": "string",
"date": "2018-03-22",
"total": 0,
"note": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"bill": {
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"client": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | TrustLineItem | true | No description |
TrustLineItemList
{
"data": [
{
"id": 0,
"etag": "string",
"date": "2018-03-22",
"total": 0,
"note": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"bill": {
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"client": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [TrustLineItem] | true | TrustLineItem List Response |
ReminderTemplate_base
{
"id": 0,
"etag": "string",
"duration": 0,
"notification_type": "Email",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the ReminderTemplate |
| etag | string | false | ETag for the ReminderTemplate |
| duration | integer(int32) | false | The time in minutes to remind user before the subject. |
| notification_type | string | false | The type of method to be notified by |
| created_at | string(date-time) | false | The time the ReminderTemplate was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the ReminderTemplate was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| notification_type | |
| notification_type | Popup |
ReminderTemplate
{
"id": 0,
"etag": "string",
"duration": 0,
"notification_type": "Email",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | ReminderTemplate_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
TaskTemplate_base
{
"id": 0,
"etag": "string",
"name": "string",
"description": "string",
"priority": "High",
"private": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the TaskTemplate |
| etag | string | false | ETag for the TaskTemplate |
| name | string | false | The name of the TaskTemplate |
| description | string | false | A detailed description of the TaskTemplate |
| priority | string | false | TaskTemplate priority |
| private | boolean | false | Whether the TaskTemplate is private. |
| created_at | string(date-time) | false | The time the TaskTemplate was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the TaskTemplate was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| priority | High |
| priority | Normal |
| priority | Low |
TaskTemplate
{
"id": 0,
"etag": "string",
"name": "string",
"description": "string",
"priority": "High",
"private": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"task_template_list": {
"id": 0,
"etag": "string",
"name": "string",
"description": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"template_creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"reminder_templates": [
{
"id": 0,
"etag": "string",
"duration": 0,
"notification_type": "Email",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | TaskTemplate_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » task_template_list | TaskTemplateList_base | false | No description |
| » template_creator | User_base | false | No description |
| » reminder_templates | [ReminderTemplate_base] | false | ReminderTemplate |
TaskTemplateShow
{
"data": {
"id": 0,
"etag": "string",
"name": "string",
"description": "string",
"priority": "High",
"private": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"task_template_list": {
"id": 0,
"etag": "string",
"name": "string",
"description": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"template_creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"reminder_templates": [
{
"id": 0,
"etag": "string",
"duration": 0,
"notification_type": "Email",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
]
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | TaskTemplate | true | No description |
TaskTemplateList
{
"id": 0,
"etag": "string",
"name": "string",
"description": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"practice_area": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"name": "string",
"code": "string"
},
"creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | TaskTemplateList_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » practice_area | PracticeArea_base | false | No description |
| » creator | User_base | false | No description |
Report_base
{
"id": 0,
"name": "string",
"state": "not_started",
"kind": "revenue",
"format": "pdf",
"progress": 0,
"created_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Report |
| name | string | false | A specified name for the report |
| state | string | false | The current state of the report |
| kind | string | false | The kind of report to generate |
| format | string | false | The requested format of the report |
| progress | integer(int32) | false | The integer percentage of how complete the report is. |
| created_at | string(date-time) | false | The time the Report was created (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| state | not_started |
| state | queued |
| state | in_progress |
| state | failed |
| state | completed |
| kind | revenue |
| kind | fee_allocation |
| kind | trust_management |
| kind | accounts_receivable_aging |
| kind | finance_mrr |
| kind | finance_purchases |
| format | |
| format | csv |
| format | html |
Report
{
"id": 0,
"name": "string",
"state": "not_started",
"kind": "revenue",
"format": "pdf",
"progress": 0,
"created_at": "2018-03-22T20:30:34Z"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Report_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
ReportShow
{
"data": {
"id": 0,
"name": "string",
"state": "not_started",
"kind": "revenue",
"format": "pdf",
"progress": 0,
"created_at": "2018-03-22T20:30:34Z"
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | Report | true | No description |
LineItemTotals_base
{
"quantity": 0,
"price": 0,
"discount_percent": 0,
"total": 0
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| quantity | number(double) | false | Sum of quantity for included line items. |
| price | number(double) | false | Sum of price for included line items. |
| discount_percent | number(double) | false | Sum of discount as percentage for included line items. |
| total | number(double) | false | Sum of total for included line items. |
LineItemTotals
{
"quantity": 0,
"price": 0,
"discount_percent": 0,
"total": 0
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | LineItemTotals_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
LineItem_base
{
"id": 0,
"etag": "string",
"type": "ActivityLineItem",
"description": "string",
"date": "2018-03-22",
"price": 0,
"taxable": true,
"kind": "Service",
"note": "string",
"secondary_taxable": true,
"total": 0,
"tax": 0,
"secondary_tax": 0,
"sub_total": 0,
"quantity": 0,
"group_ordering": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the LineItem |
| etag | string | false | ETag for the LineItem |
| type | string | false | The type of the LineItem |
| description | string | false | The description for the LineItem |
| date | string(date) | false | The LineItem date (as a ISO-8601 date) |
| price | number(double) | false | The price of the LineItem |
| taxable | boolean | false | Whether the LineItem is taxable |
| kind | string | false | The kind of LineItem |
| note | string | false | The note attached to the LineItem |
| secondary_taxable | boolean | false | Whether the LineItem is secondary taxable |
| total | number(double) | false | The total amount for the LineItem |
| tax | number(double) | false | The tax amount for the LineItem |
| secondary_tax | number(double) | false | The secondary tax amount for the LineItem |
| sub_total | number(double) | false | The subtotal amount for the LineItem |
| quantity | number(double) | false | The amount of hours for the LineItem |
| group_ordering | integer(int32) | false | The value to specify the ordering of the LineItem on a bill |
| created_at | string(date-time) | false | The time the LineItem was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the LineItem was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| type | ActivityLineItem |
| type | LineItem |
| type | SummaryLineItem |
| kind | Service |
| kind | Expense |
LineItem
{
"id": 0,
"etag": "string",
"type": "ActivityLineItem",
"description": "string",
"date": "2018-03-22",
"price": 0,
"taxable": true,
"kind": "Service",
"note": "string",
"secondary_taxable": true,
"total": 0,
"tax": 0,
"secondary_tax": 0,
"sub_total": 0,
"quantity": 0,
"group_ordering": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"bill": {
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0
},
"activity": {
"id": 0,
"etag": "string",
"type": "TimeEntry",
"date": "2018-03-22",
"quantity_in_hours": 0,
"rounded_quantity_in_hours": 0,
"quantity": 0,
"rounded_quantity": 0,
"price": 0,
"note": "string",
"flat_rate": true,
"billed": true,
"on_bill": true,
"total": 0,
"contingency_fee": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"discount": {
"rate": 0,
"type": "percentage",
"note": "string",
"early_payment_rate": 0,
"early_payment_period": 0
},
"included_line_item_totals": {
"quantity": 0,
"price": 0,
"discount_percent": 0,
"total": 0
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | LineItem_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » bill | Bill_base | false | No description |
| » activity | Activity_base | false | No description |
| » matter | Matter_base | false | No description |
| » user | User_base | false | No description |
| » discount | Discount_base | false | No description |
| » included_line_item_totals | LineItemTotals_base | false | No description |
LineItemShow
{
"data": {
"id": 0,
"etag": "string",
"type": "ActivityLineItem",
"description": "string",
"date": "2018-03-22",
"price": 0,
"taxable": true,
"kind": "Service",
"note": "string",
"secondary_taxable": true,
"total": 0,
"tax": 0,
"secondary_tax": 0,
"sub_total": 0,
"quantity": 0,
"group_ordering": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"bill": {
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0
},
"activity": {
"id": 0,
"etag": "string",
"type": "TimeEntry",
"date": "2018-03-22",
"quantity_in_hours": 0,
"rounded_quantity_in_hours": 0,
"quantity": 0,
"rounded_quantity": 0,
"price": 0,
"note": "string",
"flat_rate": true,
"billed": true,
"on_bill": true,
"total": 0,
"contingency_fee": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"discount": {
"rate": 0,
"type": "percentage",
"note": "string",
"early_payment_rate": 0,
"early_payment_period": 0
},
"included_line_item_totals": {
"quantity": 0,
"price": 0,
"discount_percent": 0,
"total": 0
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | LineItem | true | No description |
LineItemList
{
"data": [
{
"id": 0,
"etag": "string",
"type": "ActivityLineItem",
"description": "string",
"date": "2018-03-22",
"price": 0,
"taxable": true,
"kind": "Service",
"note": "string",
"secondary_taxable": true,
"total": 0,
"tax": 0,
"secondary_tax": 0,
"sub_total": 0,
"quantity": 0,
"group_ordering": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"bill": {
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0
},
"activity": {
"id": 0,
"etag": "string",
"type": "TimeEntry",
"date": "2018-03-22",
"quantity_in_hours": 0,
"rounded_quantity_in_hours": 0,
"quantity": 0,
"rounded_quantity": 0,
"price": 0,
"note": "string",
"flat_rate": true,
"billed": true,
"on_bill": true,
"total": 0,
"contingency_fee": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"discount": {
"rate": 0,
"type": "percentage",
"note": "string",
"early_payment_rate": 0,
"early_payment_period": 0
},
"included_line_item_totals": {
"quantity": 0,
"price": 0,
"discount_percent": 0,
"total": 0
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [LineItem] | true | LineItem List Response |
TextSnippet_base
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"snippet": "string",
"phrase": "string",
"whole_word": true
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the TextSnippet |
| etag | string | false | ETag for the TextSnippet |
| created_at | string(date-time) | false | The time the TextSnippet was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the TextSnippet was last updated (as a ISO-8601 timestamp) |
| snippet | string | false | The abbreviation that should be expanded |
| phrase | string | false | The phrase the abbreviation should be expanded to |
| whole_word | boolean | false | Whether the TextSnippet abbreviation requires a space after it has been entered to expand to a phrase |
TextSnippet
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"snippet": "string",
"phrase": "string",
"whole_word": true
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | TextSnippet_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
TextSnippetShow
{
"data": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"snippet": "string",
"phrase": "string",
"whole_word": true
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | TextSnippet | true | No description |
TextSnippetList
{
"data": [
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"snippet": "string",
"phrase": "string",
"whole_word": true
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [TextSnippet] | true | TextSnippet List Response |
CalendarVisibility_base
{
"id": "string",
"etag": "string",
"color": {
"r": 0.396078431372549,
"g": 0.5490196078431373,
"b": 0.8549019607843137
},
"light_color": {
"r": 0.7019607843137254,
"g": 0.7843137254901961,
"b": 1
},
"visible": true,
"name": true
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | false | Unique identifier for the CalendarVisibility |
| etag | string | false | ETag for the CalendarVisibility |
| color | string | false | Calendar color |
| light_color | string | false | Accent color to complement the main calendar color. |
| visible | boolean | false | Whether the CalendarVisibility will be shown by default in the Clio Web UI. |
| name | boolean | false | Calendar name |
Enumerated Values
| Property | Value |
|---|---|
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
CalendarVisibility
{
"id": "string",
"etag": "string",
"color": {
"r": 0.396078431372549,
"g": 0.5490196078431373,
"b": 0.8549019607843137
},
"light_color": {
"r": 0.7019607843137254,
"g": 0.7843137254901961,
"b": 1
},
"visible": true,
"name": true
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | CalendarVisibility_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
CalendarVisibilityShow
{
"data": {
"id": "string",
"etag": "string",
"color": {
"r": 0.396078431372549,
"g": 0.5490196078431373,
"b": 0.8549019607843137
},
"light_color": {
"r": 0.7019607843137254,
"g": 0.7843137254901961,
"b": 1
},
"visible": true,
"name": true
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | CalendarVisibility | true | No description |
CalendarVisibilityList
{
"data": [
{
"id": "string",
"etag": "string",
"color": {
"r": 0.396078431372549,
"g": 0.5490196078431373,
"b": 0.8549019607843137
},
"light_color": {
"r": 0.7019607843137254,
"g": 0.7843137254901961,
"b": 1
},
"visible": true,
"name": true
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [CalendarVisibility] | true | CalendarVisibility List Response |
TrustRequest_base
{
"id": 0,
"etag": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the TrustRequest |
| etag | string | false | ETag for the TrustRequest |
TrustRequest
{
"id": 0,
"etag": "string"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | TrustRequest_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
TrustRequestShow
{
"data": {
"id": 0,
"etag": "string"
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | TrustRequest | true | No description |
CreditMemo_base
{
"id": 0,
"etag": "string",
"date": "2018-03-22",
"amount": 0,
"description": "string",
"discount": true,
"voided_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the CreditMemo |
| etag | string | false | ETag for the CreditMemo |
| date | string(date) | false | Date the CreditMemo was recorded (as a ISO-8601 date) |
| amount | number(double) | false | Total amount credited |
| description | string | false | A detailed description for the CreditMemo |
| discount | boolean | false | Whether the CreditMemo is applied as discount |
| voided_at | string(date-time) | false | Time the CreditMemo was voided (as a ISO-8601 timestamp) |
| created_at | string(date-time) | false | The time the CreditMemo was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the CreditMemo was last updated (as a ISO-8601 timestamp) |
CreditMemo
{
"id": 0,
"etag": "string",
"date": "2018-03-22",
"amount": 0,
"description": "string",
"discount": true,
"voided_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"allocations": [
{
"id": 0,
"etag": "string",
"date": "2018-03-22",
"amount": 0,
"interest": true,
"voided_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"description": "string",
"source_bank_account": "string",
"has_online_payment": true,
"destroyable": true
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | CreditMemo_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » user | User_base | false | No description |
| » contact | Contact_base | false | No description |
| » allocations | [Allocation_base] | false | Allocation |
CreditMemoShow
{
"data": {
"id": 0,
"etag": "string",
"date": "2018-03-22",
"amount": 0,
"description": "string",
"discount": true,
"voided_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"allocations": [
{
"id": 0,
"etag": "string",
"date": "2018-03-22",
"amount": 0,
"interest": true,
"voided_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"description": "string",
"source_bank_account": "string",
"has_online_payment": true,
"destroyable": true
}
]
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | CreditMemo | true | No description |
CreditMemoList
{
"data": [
{
"id": 0,
"etag": "string",
"date": "2018-03-22",
"amount": 0,
"description": "string",
"discount": true,
"voided_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"allocations": [
{
"id": 0,
"etag": "string",
"date": "2018-03-22",
"amount": 0,
"interest": true,
"voided_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"description": "string",
"source_bank_account": "string",
"has_online_payment": true,
"destroyable": true
}
]
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [CreditMemo] | true | CreditMemo List Response |
UtbmsSet_base
{
"id": 0,
"etag": "string",
"name": "string",
"enabled": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the UtbmsSet |
| etag | string | false | ETag for the UtbmsSet |
| name | string | false | The name of the UtbmsSet |
| enabled | boolean | false | Whether the UtbmsSet is enabled for the current account. |
| created_at | string(date-time) | false | The time the UtbmsSet was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the UtbmsSet was last updated (as a ISO-8601 timestamp) |
UtbmsSet
{
"id": 0,
"etag": "string",
"name": "string",
"enabled": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | UtbmsSet_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
UtbmsSetList
{
"data": [
{
"id": 0,
"etag": "string",
"name": "string",
"enabled": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [UtbmsSet] | true | UtbmsSet List Response |
ConversationMembership_base
{
"id": 0,
"etag": "string",
"read": true,
"archived": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the ConversationMembership |
| etag | string | false | ETag for the ConversationMembership |
| read | boolean | false | Whether or not the ConversationMembership has been read by the member |
| archived | boolean | false | Whether or not the ConversationMembership has been archived by the member |
| created_at | string(date-time) | false | The time the ConversationMembership was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the ConversationMembership was last updated (as a ISO-8601 timestamp) |
ConversationMembership
{
"id": 0,
"etag": "string",
"read": true,
"archived": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"member": {
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | ConversationMembership_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » member | Participant_base | false | No description |
Conversation_base
{
"id": 0,
"etag": "string",
"subject": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Conversation |
| etag | string | false | ETag for the Conversation |
| subject | string | false | The subject of the Conversation |
| created_at | string(date-time) | false | The time the Conversation was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the Conversation was last updated (as a ISO-8601 timestamp) |
Conversation
{
"id": 0,
"etag": "string",
"subject": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"last_message": {
"id": 0,
"etag": "string",
"body": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"first_message": {
"id": 0,
"etag": "string",
"body": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"memberships": [
{
"id": 0,
"etag": "string",
"read": true,
"archived": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"member": {
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
}
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Conversation_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » last_message | ConversationMessage_base | false | No description |
| » first_message | ConversationMessage_base | false | No description |
| » matter | Matter_base | false | No description |
| » memberships | [ConversationMembership] | false | ConversationMembership |
ConversationShow
{
"data": {
"id": 0,
"etag": "string",
"subject": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"last_message": {
"id": 0,
"etag": "string",
"body": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"first_message": {
"id": 0,
"etag": "string",
"body": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"memberships": [
{
"id": 0,
"etag": "string",
"read": true,
"archived": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"member": {
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
}
}
]
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | Conversation | true | No description |
ConversationList
{
"data": [
{
"id": 0,
"etag": "string",
"subject": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"last_message": {
"id": 0,
"etag": "string",
"body": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"first_message": {
"id": 0,
"etag": "string",
"body": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"memberships": [
{
"id": 0,
"etag": "string",
"read": true,
"archived": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"member": {
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
}
}
]
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [Conversation] | true | Conversation List Response |
ConversationMessage_base
{
"id": 0,
"etag": "string",
"body": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the ConversationMessage |
| etag | string | false | ETag for the ConversationMessage |
| body | string | false | The main content of the ConversationMessage |
| created_at | string(date-time) | false | The time the ConversationMessage was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the ConversationMessage was last updated (as a ISO-8601 timestamp) |
ConversationMessage
{
"id": 0,
"etag": "string",
"body": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"sender": {
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
},
"document": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Document",
"locked": true,
"name": "string",
"received_at": "2018-03-22T20:30:34Z",
"filename": "string"
},
"conversation": {
"id": 0,
"etag": "string",
"subject": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"receivers": [
{
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | ConversationMessage_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » sender | Participant_base | false | No description |
| » document | Document_base | false | No description |
| » conversation | Conversation_base | false | No description |
| » receivers | [Participant_base] | false | Participant |
ConversationMessageShow
{
"data": {
"id": 0,
"etag": "string",
"body": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"sender": {
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
},
"document": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Document",
"locked": true,
"name": "string",
"received_at": "2018-03-22T20:30:34Z",
"filename": "string"
},
"conversation": {
"id": 0,
"etag": "string",
"subject": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"receivers": [
{
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
}
]
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | ConversationMessage | true | No description |
ConversationMessageList
{
"data": [
{
"id": 0,
"etag": "string",
"body": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"sender": {
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
},
"document": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Document",
"locked": true,
"name": "string",
"received_at": "2018-03-22T20:30:34Z",
"filename": "string"
},
"conversation": {
"id": 0,
"etag": "string",
"subject": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"receivers": [
{
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
}
]
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [ConversationMessage] | true | ConversationMessage List Response |
Attendee_base
{
"id": 0,
"type": "Contact",
"name": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Attendee |
| type | string | false | The class name of the Attendee |
| name | string | false | The name of the Attendee |
Enumerated Values
| Property | Value |
|---|---|
| type | Contact |
| type | Calendar |
Attendee
{
"id": 0,
"type": "Contact",
"name": "string",
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"notification_methods": [
{
"id": 0,
"etag": "string",
"type": "Email",
"email_address": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Attendee_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » user | User_base | false | No description |
| » notification_methods | [NotificationMethod_base] | false | NotificationMethod |
Calendar_base
{
"id": 0,
"etag": "string",
"color": {
"r": 0.4,
"g": 0.5647058823529412,
"b": 1
},
"light_color": {
"r": 0.7019607843137254,
"g": 0.7843137254901961,
"b": 1
},
"court_rules_default_calendar": true,
"name": "string",
"permission": "owner",
"type": "AccountCalendar",
"visible": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Calendar |
| etag | string | false | ETag for the Calendar |
| color | string | false | Color |
| light_color | string | false | Accent color to complement the main calendar color. |
| court_rules_default_calendar | boolean | false | Whether the calendar is default court rules calendar for current user |
| name | string | false | The name of the Calendar |
| permission | string | false | The user's permission to the Calendar |
| type | string | false | The type of the Calendar |
| visible | boolean | false | Whether the Calendar will be shown by default in the Clio Web UI. |
| created_at | string(date-time) | false | The time the Calendar was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the Calendar was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| light_color | [object Object] |
| permission | owner |
| permission | editor |
| permission | viewer |
| permission | limited_viewer |
| permission | none |
| type | AccountCalendar |
| type | AdhocCalendar |
| type | UserCalendar |
Calendar
{
"id": 0,
"etag": "string",
"color": {
"r": 0.4,
"g": 0.5647058823529412,
"b": 1
},
"light_color": {
"r": 0.7019607843137254,
"g": 0.7843137254901961,
"b": 1
},
"court_rules_default_calendar": true,
"name": "string",
"permission": "owner",
"type": "AccountCalendar",
"visible": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Calendar_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » creator | User_base | false | No description |
CalendarShow
{
"data": {
"id": 0,
"etag": "string",
"color": {
"r": 0.4,
"g": 0.5647058823529412,
"b": 1
},
"light_color": {
"r": 0.7019607843137254,
"g": 0.7843137254901961,
"b": 1
},
"court_rules_default_calendar": true,
"name": "string",
"permission": "owner",
"type": "AccountCalendar",
"visible": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | Calendar | true | No description |
CalendarList
{
"data": [
{
"id": 0,
"etag": "string",
"color": {
"r": 0.4,
"g": 0.5647058823529412,
"b": 1
},
"light_color": {
"r": 0.7019607843137254,
"g": 0.7843137254901961,
"b": 1
},
"court_rules_default_calendar": true,
"name": "string",
"permission": "owner",
"type": "AccountCalendar",
"visible": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [Calendar] | true | Calendar List Response |
ServiceType_base
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"system_id": 0,
"description": "string",
"default": true
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the ServiceType |
| etag | string | false | ETag for the ServiceType |
| created_at | string(date-time) | false | The time the ServiceType was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the ServiceType was last updated (as a ISO-8601 timestamp) |
| system_id | integer(int32) | false | Server ID |
| description | string | false | A detailed description of the ServiceType |
| default | boolean | false | Whether ServiceType is default for the current user |
ServiceType
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"system_id": 0,
"description": "string",
"default": true
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | ServiceType_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
ServiceTypeShow
{
"data": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"system_id": 0,
"description": "string",
"default": true
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | ServiceType | true | No description |
ServiceTypeList
{
"data": [
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"system_id": 0,
"description": "string",
"default": true
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [ServiceType] | true | ServiceType List Response |
MatterDocket_base
{
"id": 0,
"etag": "string",
"name": "string",
"start_date": "2018-03-22",
"start_time": "2018-03-22T20:30:34Z",
"status": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the MatterDocket |
| etag | string | false | ETag for the MatterDocket |
| name | string | false | The name of the MatterDocket |
| start_date | string(date) | false | The date the MatterDocket will start (as a ISO-8601 date) |
| start_time | string(date-time) | false | The time the MatterDocket will start, required for specific triggers (as a ISO-8601 timestamp) |
| status | string | false | The status of the MatterDocket creation |
| created_at | string(date-time) | false | The time the MatterDocket was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the MatterDocket was last updated (as a ISO-8601 timestamp) |
| deleted_at | string(date-time) | false | The time the MatterDocket was deleted (as a ISO-8601 timestamp) |
MatterDocket
{
"id": 0,
"etag": "string",
"name": "string",
"start_date": "2018-03-22",
"start_time": "2018-03-22T20:30:34Z",
"status": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"jurisdiction": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"system_id": 0,
"description": "string",
"default": true
},
"trigger": {
"id": 0,
"etag": "string",
"system_id": 0,
"description": "string",
"do_not_recalculate": true,
"is_served": true,
"is_requirements_required": true
},
"service_type": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"system_id": 0,
"description": "string",
"default": true
},
"calendar_entries": [
{
"id": "string",
"etag": "string",
"summary": "string",
"description": "string",
"location": "string",
"start_at": "2018-03-22T20:30:34Z",
"end_at": "2018-03-22T20:30:34Z",
"all_day": true,
"recurrence_rule": "string",
"parent_calendar_entry_id": 0,
"court_rule": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"permission": "string"
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | MatterDocket_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » matter | Matter_base | false | No description |
| » jurisdiction | Jurisdiction_base | false | No description |
| » trigger | JurisdictionsToTrigger_base | false | No description |
| » service_type | ServiceType_base | false | No description |
| » calendar_entries | [CalendarEntry_base] | false | CalendarEntry |
MatterDocketShow
{
"data": {
"id": 0,
"etag": "string",
"name": "string",
"start_date": "2018-03-22",
"start_time": "2018-03-22T20:30:34Z",
"status": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"jurisdiction": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"system_id": 0,
"description": "string",
"default": true
},
"trigger": {
"id": 0,
"etag": "string",
"system_id": 0,
"description": "string",
"do_not_recalculate": true,
"is_served": true,
"is_requirements_required": true
},
"service_type": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"system_id": 0,
"description": "string",
"default": true
},
"calendar_entries": [
{
"id": "string",
"etag": "string",
"summary": "string",
"description": "string",
"location": "string",
"start_at": "2018-03-22T20:30:34Z",
"end_at": "2018-03-22T20:30:34Z",
"all_day": true,
"recurrence_rule": "string",
"parent_calendar_entry_id": 0,
"court_rule": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"permission": "string"
}
]
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | MatterDocket | true | No description |
MatterDocketList
{
"data": [
{
"id": 0,
"etag": "string",
"name": "string",
"start_date": "2018-03-22",
"start_time": "2018-03-22T20:30:34Z",
"status": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"jurisdiction": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"system_id": 0,
"description": "string",
"default": true
},
"trigger": {
"id": 0,
"etag": "string",
"system_id": 0,
"description": "string",
"do_not_recalculate": true,
"is_served": true,
"is_requirements_required": true
},
"service_type": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"system_id": 0,
"description": "string",
"default": true
},
"calendar_entries": [
{
"id": "string",
"etag": "string",
"summary": "string",
"description": "string",
"location": "string",
"start_at": "2018-03-22T20:30:34Z",
"end_at": "2018-03-22T20:30:34Z",
"all_day": true,
"recurrence_rule": "string",
"parent_calendar_entry_id": 0,
"court_rule": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"permission": "string"
}
]
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [MatterDocket] | true | MatterDocket List Response |
CalendarEntry_base
{
"id": "string",
"etag": "string",
"summary": "string",
"description": "string",
"location": "string",
"start_at": "2018-03-22T20:30:34Z",
"end_at": "2018-03-22T20:30:34Z",
"all_day": true,
"recurrence_rule": "string",
"parent_calendar_entry_id": 0,
"court_rule": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"permission": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | false | Unique identifier for the CalendarEntry |
| etag | string | false | ETag for the CalendarEntry |
| summary | string | false | A short summary of the CalendarEntry |
| description | string | false | A detailed description of the CalendarEntry |
| location | string | false | The geographic location of the CalendarEntry |
| start_at | string(date-time) | false | The time the CalendarEntry starts (as an ISO-8601 timestamp) |
| end_at | string(date-time) | false | The time the CalendarEntry ends (as an ISO-8601 timestamp) |
| all_day | boolean | false | Whether the event is all day |
| recurrence_rule | string | false | Recurrence rule for expanding |
| parent_calendar_entry_id | integer(int32) | false | Identifier for the parent CalendarEntry |
| court_rule | boolean | false | Whether this event is associated with a Court Rule |
| created_at | string(date-time) | false | The time the CalendarEntry was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the CalendarEntry was last updated (as a ISO-8601 timestamp) |
| permission | string | false | The view permission for the current user |
CalendarEntry
{
"id": "string",
"etag": "string",
"summary": "string",
"description": "string",
"location": "string",
"start_at": "2018-03-22T20:30:34Z",
"end_at": "2018-03-22T20:30:34Z",
"all_day": true,
"recurrence_rule": "string",
"parent_calendar_entry_id": 0,
"court_rule": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"permission": "string",
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"matter_docket": {
"id": 0,
"etag": "string",
"name": "string",
"start_date": "2018-03-22",
"start_time": "2018-03-22T20:30:34Z",
"status": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z"
},
"calendar_owner": {
"id": 0,
"etag": "string",
"color": {
"r": 0.4,
"g": 0.5647058823529412,
"b": 1
},
"light_color": {
"r": 0.7019607843137254,
"g": 0.7843137254901961,
"b": 1
},
"court_rules_default_calendar": true,
"name": "string",
"permission": "owner",
"type": "AccountCalendar",
"visible": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"parent_calendar_entry": {
"id": "string",
"etag": "string",
"summary": "string",
"description": "string",
"location": "string",
"start_at": "2018-03-22T20:30:34Z",
"end_at": "2018-03-22T20:30:34Z",
"all_day": true,
"recurrence_rule": "string",
"parent_calendar_entry_id": 0,
"court_rule": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"permission": "string"
},
"attendees": [
{
"id": 0,
"type": "Contact",
"name": "string"
}
],
"reminders": [
{
"id": 0,
"etag": "string",
"duration": 0,
"next_delivery_at": "2018-03-22T20:30:34Z",
"state": "initializing",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"external_properties": [
{
"id": 0,
"name": "string",
"value": "string"
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | CalendarEntry_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » matter | Matter_base | false | No description |
| » matter_docket | MatterDocket_base | false | No description |
| » calendar_owner | Calendar_base | false | No description |
| » parent_calendar_entry | CalendarEntry_base | false | No description |
| » attendees | [Attendee_base] | false | Attendee |
| » reminders | [Reminder_base] | false | Reminder |
| » external_properties | [ExternalProperty_base] | false | ExternalProperty |
CalendarEntryShow
{
"data": {
"id": "string",
"etag": "string",
"summary": "string",
"description": "string",
"location": "string",
"start_at": "2018-03-22T20:30:34Z",
"end_at": "2018-03-22T20:30:34Z",
"all_day": true,
"recurrence_rule": "string",
"parent_calendar_entry_id": 0,
"court_rule": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"permission": "string",
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"matter_docket": {
"id": 0,
"etag": "string",
"name": "string",
"start_date": "2018-03-22",
"start_time": "2018-03-22T20:30:34Z",
"status": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z"
},
"calendar_owner": {
"id": 0,
"etag": "string",
"color": {
"r": 0.4,
"g": 0.5647058823529412,
"b": 1
},
"light_color": {
"r": 0.7019607843137254,
"g": 0.7843137254901961,
"b": 1
},
"court_rules_default_calendar": true,
"name": "string",
"permission": "owner",
"type": "AccountCalendar",
"visible": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"parent_calendar_entry": {
"id": "string",
"etag": "string",
"summary": "string",
"description": "string",
"location": "string",
"start_at": "2018-03-22T20:30:34Z",
"end_at": "2018-03-22T20:30:34Z",
"all_day": true,
"recurrence_rule": "string",
"parent_calendar_entry_id": 0,
"court_rule": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"permission": "string"
},
"attendees": [
{
"id": 0,
"type": "Contact",
"name": "string"
}
],
"reminders": [
{
"id": 0,
"etag": "string",
"duration": 0,
"next_delivery_at": "2018-03-22T20:30:34Z",
"state": "initializing",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"external_properties": [
{
"id": 0,
"name": "string",
"value": "string"
}
]
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | CalendarEntry | true | No description |
CalendarEntryList
{
"data": [
{
"id": "string",
"etag": "string",
"summary": "string",
"description": "string",
"location": "string",
"start_at": "2018-03-22T20:30:34Z",
"end_at": "2018-03-22T20:30:34Z",
"all_day": true,
"recurrence_rule": "string",
"parent_calendar_entry_id": 0,
"court_rule": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"permission": "string",
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"matter_docket": {
"id": 0,
"etag": "string",
"name": "string",
"start_date": "2018-03-22",
"start_time": "2018-03-22T20:30:34Z",
"status": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z"
},
"calendar_owner": {
"id": 0,
"etag": "string",
"color": {
"r": 0.4,
"g": 0.5647058823529412,
"b": 1
},
"light_color": {
"r": 0.7019607843137254,
"g": 0.7843137254901961,
"b": 1
},
"court_rules_default_calendar": true,
"name": "string",
"permission": "owner",
"type": "AccountCalendar",
"visible": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"parent_calendar_entry": {
"id": "string",
"etag": "string",
"summary": "string",
"description": "string",
"location": "string",
"start_at": "2018-03-22T20:30:34Z",
"end_at": "2018-03-22T20:30:34Z",
"all_day": true,
"recurrence_rule": "string",
"parent_calendar_entry_id": 0,
"court_rule": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"permission": "string"
},
"attendees": [
{
"id": 0,
"type": "Contact",
"name": "string"
}
],
"reminders": [
{
"id": 0,
"etag": "string",
"duration": 0,
"next_delivery_at": "2018-03-22T20:30:34Z",
"state": "initializing",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"external_properties": [
{
"id": 0,
"name": "string",
"value": "string"
}
]
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [CalendarEntry] | true | CalendarEntry List Response |
BulkAction_base
{
"id": 0,
"etag": "string",
"status": "not_started",
"performed": 0,
"requested": 0,
"last_action_performed_at": "2018-03-22T20:30:34Z",
"response_url": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the BulkAction |
| etag | string | false | ETag for the BulkAction |
| status | string | false | The current status of the BulkAction request |
| performed | integer(int32) | false | Number of request actions performed |
| requested | integer(int32) | false | Total number of request actions |
| last_action_performed_at | string(date-time) | false | The time the last action performed (as a ISO-8601 timestamp) |
| response_url | string | false | The URL where the response can be downloaded. It is only available once the BulkAction is complete. |
Enumerated Values
| Property | Value |
|---|---|
| status | not_started |
| status | queued |
| status | in_progress |
| status | failed |
| status | completed |
BulkAction
{
"id": 0,
"etag": "string",
"status": "not_started",
"performed": 0,
"requested": 0,
"last_action_performed_at": "2018-03-22T20:30:34Z",
"response_url": "string"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | BulkAction_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
BulkActionShow
{
"data": {
"id": 0,
"etag": "string",
"status": "not_started",
"performed": 0,
"requested": 0,
"last_action_performed_at": "2018-03-22T20:30:34Z",
"response_url": "string"
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | BulkAction | true | No description |
BankTransaction_base
{
"id": 0,
"type": "string",
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"bank_account_id": 0,
"source": "string",
"confirmation": "string",
"date": "2018-03-22",
"amount": 0,
"currency": "string",
"description": "string",
"exchange_rate": 0,
"transaction_type": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the BankTransaction |
| type | string | false | The type of the BankTransaction |
| etag | string | false | ETag for the BankTransaction |
| created_at | string(date-time) | false | The time the BankTransaction was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the BankTransaction was last updated (as a ISO-8601 timestamp) |
| bank_account_id | integer(int32) | false | The associated bank account. |
| source | string | false | Where the transaction came from. |
| confirmation | string | false | The reference code for the transaction. |
| date | string(date) | false | The date of the transaction. |
| amount | number(double) | false | The amount of the transaction. |
| currency | string | false | The currency of the transaction. |
| description | string | false | The description of the transaction. |
| exchange_rate | number(double) | false | The exchange rate of the transaction. |
| transaction_type | string | false | What kind of transaction. |
BankTransaction
{
"id": 0,
"type": "string",
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"bank_account_id": 0,
"source": "string",
"confirmation": "string",
"date": "2018-03-22",
"amount": 0,
"currency": "string",
"description": "string",
"exchange_rate": 0,
"transaction_type": "string",
"client": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"bank_account": {
"id": 0,
"etag": "string",
"holder": "string",
"name": "string",
"institution": "string",
"domicile_branch": "string",
"account_number": "string",
"transit_number": "string",
"swift": "string",
"currency": "string",
"balance": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"type": "Operating",
"default_account": true,
"general_ledger_number": "string",
"bank_transactions_count": 0
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | BankTransaction_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » client | Contact_base | false | No description |
| » matter | Matter_base | false | No description |
| » bank_account | BankAccount_base | false | No description |
BankTransactionShow
{
"data": {
"id": 0,
"type": "string",
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"bank_account_id": 0,
"source": "string",
"confirmation": "string",
"date": "2018-03-22",
"amount": 0,
"currency": "string",
"description": "string",
"exchange_rate": 0,
"transaction_type": "string",
"client": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"bank_account": {
"id": 0,
"etag": "string",
"holder": "string",
"name": "string",
"institution": "string",
"domicile_branch": "string",
"account_number": "string",
"transit_number": "string",
"swift": "string",
"currency": "string",
"balance": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"type": "Operating",
"default_account": true,
"general_ledger_number": "string",
"bank_transactions_count": 0
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | BankTransaction | true | No description |
BankTransactionList
{
"data": [
{
"id": 0,
"type": "string",
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"bank_account_id": 0,
"source": "string",
"confirmation": "string",
"date": "2018-03-22",
"amount": 0,
"currency": "string",
"description": "string",
"exchange_rate": 0,
"transaction_type": "string",
"client": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"bank_account": {
"id": 0,
"etag": "string",
"holder": "string",
"name": "string",
"institution": "string",
"domicile_branch": "string",
"account_number": "string",
"transit_number": "string",
"swift": "string",
"currency": "string",
"balance": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"type": "Operating",
"default_account": true,
"general_ledger_number": "string",
"bank_transactions_count": 0
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [BankTransaction] | true | BankTransaction List Response |
Timer_base
{
"id": 0,
"etag": "string",
"start_time": "2018-03-22T20:30:34Z",
"elapsed_time": 0
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Timer |
| etag | string | false | ETag for the Timer |
| start_time | string(date-time) | false | The time the Timer was started (as ISO-8601 timestamp) |
| elapsed_time | number(double) | false | How much time has elapsed, in hours, since the timer was started |
Timer
{
"id": 0,
"etag": "string",
"start_time": "2018-03-22T20:30:34Z",
"elapsed_time": 0,
"activity": {
"id": 0,
"etag": "string",
"type": "TimeEntry",
"date": "2018-03-22",
"quantity_in_hours": 0,
"rounded_quantity_in_hours": 0,
"quantity": 0,
"rounded_quantity": 0,
"price": 0,
"note": "string",
"flat_rate": true,
"billed": true,
"on_bill": true,
"total": 0,
"contingency_fee": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Timer_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » activity | Activity_base | false | No description |
TimerShow
{
"data": {
"id": 0,
"etag": "string",
"start_time": "2018-03-22T20:30:34Z",
"elapsed_time": 0,
"activity": {
"id": 0,
"etag": "string",
"type": "TimeEntry",
"date": "2018-03-22",
"quantity_in_hours": 0,
"rounded_quantity_in_hours": 0,
"quantity": 0,
"rounded_quantity": 0,
"price": 0,
"note": "string",
"flat_rate": true,
"billed": true,
"on_bill": true,
"total": 0,
"contingency_fee": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | Timer | true | No description |
ExternalProperty_base
{
"id": 0,
"name": "string",
"value": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the ExternalProperty |
| name | string | false | The name of the ExternalProperty |
| value | string | false | The value of the ExternalProperty |
ExternalProperty
{
"id": 0,
"name": "string",
"value": "string",
"subject": {
"id": 0,
"type": "Task",
"identifier": "string",
"secondary_identifier": "string"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | ExternalProperty_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » subject | PolymorphicObject_base | false | No description |
Communication_base
{
"id": 0,
"etag": "string",
"subject": "string",
"body": "string",
"type": "EmailCommunication",
"date": "2018-03-22",
"time_entries_count": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Communication |
| etag | string | false | ETag for the Communication |
| subject | string | false | The subject line of the Communication |
| body | string | false | The main content of the Communication |
| type | string | false | The type of the Communication |
| date | string(date) | false | The date of the Communication (as a ISO-8601 datestamp) |
| time_entries_count | integer(int32) | false | The number of time_entries associated with the Communication |
| created_at | string(date-time) | false | The time the Communication was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the Communication was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| type | EmailCommunication |
| type | PhoneCommunication |
Communication
{
"id": 0,
"etag": "string",
"subject": "string",
"body": "string",
"type": "EmailCommunication",
"date": "2018-03-22",
"time_entries_count": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"senders": [
{
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
}
],
"receivers": [
{
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
}
],
"external_properties": [
{
"id": 0,
"name": "string",
"value": "string"
}
],
"time_entries": [
{
"id": 0,
"etag": "string",
"type": "TimeEntry",
"date": "2018-03-22",
"quantity_in_hours": 0,
"rounded_quantity_in_hours": 0,
"quantity": 0,
"rounded_quantity": 0,
"price": 0,
"note": "string",
"flat_rate": true,
"billed": true,
"on_bill": true,
"total": 0,
"contingency_fee": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Communication_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » matter | Matter_base | false | No description |
| » senders | [Participant_base] | false | Participant |
| » receivers | [Participant_base] | false | Participant |
| » external_properties | [ExternalProperty_base] | false | ExternalProperty |
| » time_entries | [Activity_base] | false | Activity |
CommunicationShow
{
"data": {
"id": 0,
"etag": "string",
"subject": "string",
"body": "string",
"type": "EmailCommunication",
"date": "2018-03-22",
"time_entries_count": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"senders": [
{
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
}
],
"receivers": [
{
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
}
],
"external_properties": [
{
"id": 0,
"name": "string",
"value": "string"
}
],
"time_entries": [
{
"id": 0,
"etag": "string",
"type": "TimeEntry",
"date": "2018-03-22",
"quantity_in_hours": 0,
"rounded_quantity_in_hours": 0,
"quantity": 0,
"rounded_quantity": 0,
"price": 0,
"note": "string",
"flat_rate": true,
"billed": true,
"on_bill": true,
"total": 0,
"contingency_fee": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
]
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | Communication | true | No description |
CommunicationList
{
"data": [
{
"id": 0,
"etag": "string",
"subject": "string",
"body": "string",
"type": "EmailCommunication",
"date": "2018-03-22",
"time_entries_count": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"senders": [
{
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
}
],
"receivers": [
{
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
}
],
"external_properties": [
{
"id": 0,
"name": "string",
"value": "string"
}
],
"time_entries": [
{
"id": 0,
"etag": "string",
"type": "TimeEntry",
"date": "2018-03-22",
"quantity_in_hours": 0,
"rounded_quantity_in_hours": 0,
"quantity": 0,
"rounded_quantity": 0,
"price": 0,
"note": "string",
"flat_rate": true,
"billed": true,
"on_bill": true,
"total": 0,
"contingency_fee": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
]
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [Communication] | true | Communication List Response |
Discount_base
{
"rate": 0,
"type": "percentage",
"note": "string",
"early_payment_rate": 0,
"early_payment_period": 0
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| rate | number(double) | false | The rate of the Discount% |
| type | string | false | The type of Discount being applied in your Discount rate. |
| note | string | false | A note for your Discount |
| early_payment_rate | integer(int32) | false | The % discount that will be applied if your Discount is paid within the early payment period. |
| early_payment_period | integer(int32) | false | The number of days for your Discount period. If your bill is paid within this time, apply your Discount rate to the bill. |
Enumerated Values
| Property | Value |
|---|---|
| type | percentage |
| type | money |
Discount
{
"rate": 0,
"type": "percentage",
"note": "string",
"early_payment_rate": 0,
"early_payment_period": 0
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Discount_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
Activity_base
{
"id": 0,
"etag": "string",
"type": "TimeEntry",
"date": "2018-03-22",
"quantity_in_hours": 0,
"rounded_quantity_in_hours": 0,
"quantity": 0,
"rounded_quantity": 0,
"price": 0,
"note": "string",
"flat_rate": true,
"billed": true,
"on_bill": true,
"total": 0,
"contingency_fee": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Activity |
| etag | string | false | ETag for the Activity |
| type | string | false | The type of the Activity |
| date | string(date) | false | The date the Activity was performed (as a ISO-8601 date) |
| quantity_in_hours | number(double) | false | The number of hours the Activity took. |
| rounded_quantity_in_hours | number(double) | false | The number of hours rounded accordingly to the billing settings. The rounded value is used to calculate the total. |
| quantity | number(double) | false | The field is applicable to time entries only. Version <= 4.0.3: The number of hours the Activity took. Latest version: The number of seconds the Activity took. |
| rounded_quantity | number(double) | false | The field is applicable to time entries only. Version <= 4.0.3: The number of hours rounded accordingly to the billing settings. The rounded value is used to calculate the total. Latest version: The number of seconds rounded accordingly to the billing settings. The rounded value is used to calculate the total. |
| price | number(double) | false | The hourly or fixed rate of the Activity |
| note | string | false | The details about the Activity |
| flat_rate | boolean | false | Whether the Activity is a flat rate |
| billed | boolean | false | Whether the Activity has been added to an active bill that is in the state of awaiting_payment or paid |
| on_bill | boolean | false | Whether the Activity has been added to an active bill that is in the state of draft, awaiting_approval, awaiting_payment or paid |
| total | number(double) | false | The total cost of the Activity |
| contingency_fee | boolean | false | Whether or not the Activity is a contingency fee |
| created_at | string(date-time) | false | The time the Activity was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the Activity was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| type | TimeEntry |
| type | ExpenseEntry |
Activity
{
"id": 0,
"etag": "string",
"type": "TimeEntry",
"date": "2018-03-22",
"quantity_in_hours": 0,
"rounded_quantity_in_hours": 0,
"quantity": 0,
"rounded_quantity": 0,
"price": 0,
"note": "string",
"flat_rate": true,
"billed": true,
"on_bill": true,
"total": 0,
"contingency_fee": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"activity_description": {
"id": 0,
"etag": "string",
"name": "string",
"visible_to_co_counsel": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"default": true,
"type": "string",
"utbms_activity_id": 0,
"utbms_task_name": "string",
"utbms_task_id": 0,
"accessible_to_user": true
},
"bill": {
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0
},
"communication": {
"id": 0,
"etag": "string",
"subject": "string",
"body": "string",
"type": "EmailCommunication",
"date": "2018-03-22",
"time_entries_count": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"subject": {
"id": 0,
"type": "Task",
"identifier": "string",
"secondary_identifier": "string"
},
"timer": {
"id": 0,
"etag": "string",
"start_time": "2018-03-22T20:30:34Z",
"elapsed_time": 0
},
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"utbms_expense": {
"id": 0,
"etag": "string",
"name": "string",
"code": "string",
"description": "string",
"type": "UtbmsTask",
"utbms_set_id": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Activity_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » activity_description | ActivityDescription_base | false | No description |
| » bill | Bill_base | false | No description |
| » communication | Communication_base | false | No description |
| » matter | Matter_base | false | No description |
| » subject | PolymorphicObject_base | false | No description |
| » timer | Timer_base | false | No description |
| » user | User_base | false | No description |
| » utbms_expense | UtbmsCode_base | false | No description |
ActivityShow
{
"data": {
"id": 0,
"etag": "string",
"type": "TimeEntry",
"date": "2018-03-22",
"quantity_in_hours": 0,
"rounded_quantity_in_hours": 0,
"quantity": 0,
"rounded_quantity": 0,
"price": 0,
"note": "string",
"flat_rate": true,
"billed": true,
"on_bill": true,
"total": 0,
"contingency_fee": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"activity_description": {
"id": 0,
"etag": "string",
"name": "string",
"visible_to_co_counsel": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"default": true,
"type": "string",
"utbms_activity_id": 0,
"utbms_task_name": "string",
"utbms_task_id": 0,
"accessible_to_user": true
},
"bill": {
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0
},
"communication": {
"id": 0,
"etag": "string",
"subject": "string",
"body": "string",
"type": "EmailCommunication",
"date": "2018-03-22",
"time_entries_count": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"subject": {
"id": 0,
"type": "Task",
"identifier": "string",
"secondary_identifier": "string"
},
"timer": {
"id": 0,
"etag": "string",
"start_time": "2018-03-22T20:30:34Z",
"elapsed_time": 0
},
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"utbms_expense": {
"id": 0,
"etag": "string",
"name": "string",
"code": "string",
"description": "string",
"type": "UtbmsTask",
"utbms_set_id": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | Activity | true | No description |
ActivityList
{
"data": [
{
"id": 0,
"etag": "string",
"type": "TimeEntry",
"date": "2018-03-22",
"quantity_in_hours": 0,
"rounded_quantity_in_hours": 0,
"quantity": 0,
"rounded_quantity": 0,
"price": 0,
"note": "string",
"flat_rate": true,
"billed": true,
"on_bill": true,
"total": 0,
"contingency_fee": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"activity_description": {
"id": 0,
"etag": "string",
"name": "string",
"visible_to_co_counsel": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"default": true,
"type": "string",
"utbms_activity_id": 0,
"utbms_task_name": "string",
"utbms_task_id": 0,
"accessible_to_user": true
},
"bill": {
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0
},
"communication": {
"id": 0,
"etag": "string",
"subject": "string",
"body": "string",
"type": "EmailCommunication",
"date": "2018-03-22",
"time_entries_count": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"subject": {
"id": 0,
"type": "Task",
"identifier": "string",
"secondary_identifier": "string"
},
"timer": {
"id": 0,
"etag": "string",
"start_time": "2018-03-22T20:30:34Z",
"elapsed_time": 0
},
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"utbms_expense": {
"id": 0,
"etag": "string",
"name": "string",
"code": "string",
"description": "string",
"type": "UtbmsTask",
"utbms_set_id": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [Activity] | true | Activity List Response |
Bill_base
{
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Bill |
| etag | string | false | ETag for the Bill |
| number | string | false | The Bill identifier (not necessarily numeric)' |
| issued_at | string(date) | false | The time the Bill was issued (as a ISO-8601 date) |
| created_at | string(date-time) | false | The time the Bill was created (as a ISO-8601 timestamp) |
| due_at | string(date) | false | The date the Bill is due (as a ISO-8601 date) |
| tax_rate | number(double) | false | The tax rate to the Bill |
| secondary_tax_rate | number(double) | false | A secondary tax rate applied to the Bill |
| updated_at | string(date-time) | false | The time the Bill was last updated (as a ISO-8601 timestamp) |
| subject | string | false | The subject of the Bill |
| purchase_order | string | false | The purchase order of the Bill |
| type | string | false | The type of the Bill |
| memo | string | false | A memo for the Bill |
| start_at | string(date) | false | The time the billing period starts (as a ISO-8601 date) |
| end_at | string(date) | false | The time the billing period ends (as a ISO-8601 date) |
| balance | number(double) | false | The outstanding balance of the Bill |
| config | string | false | A string containing bill theme settings for the Bill preview that are specific to this Bill. To learn more about this field, refer to the bill themes documentation. Values in this string will override the bill theme settings when displaying this Bill. Any values not present in this string will default to using the settings present in the bill theme for this Bill, or to the default settings for those values if it is also undefined in the bill theme. |
| state | string | false | The current state of the Bill |
| kind | string | false | The kind of the Bill |
| total | number(double) | false | The total with interest of the Bill |
| paid | number(double) | false | The total amount paid for the Bill |
| paid_at | string(date-time) | false | The date of the last payment on the Bill |
| pending | number(double) | false | The amount of pending credit card payments on the Bill |
| due | number(double) | false | The total amount of the Bill with interest and less discounts |
| can_update | boolean | false | This value indicates if your Bill's line items and information can be updated. |
| credits_issued | number(double) | false | The total credits issued for the Bill |
| client_addresses | string | false | The available client addresses for the user |
| shared | boolean | false | Whether the Bill is a shared |
| sub_total | number(double) | false | Sub total for the Bill |
| tax_sum | number(double) | false | Sum of primary tax for the model |
| secondary_tax_sum | number(double) | false | Sum of secondary tax for the model |
Enumerated Values
| Property | Value |
|---|---|
| type | MatterBill |
| type | ClientBill |
| state | draft |
| state | awaiting_approval |
| state | awaiting_payment |
| state | paid |
| state | void |
| state | deleted |
| kind | revenue_kind |
| kind | summary_kind |
| kind | trust_kind |
| kind | aggregate_all |
| kind | aggregate_split |
| kind | aggregate_services |
| kind | aggregate_expenses |
Bill
{
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0,
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"client": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"discount": {
"rate": 0,
"type": "percentage",
"note": "string",
"early_payment_rate": 0,
"early_payment_period": 0
},
"interest": {
"rate": 0,
"type": "simple",
"period": 0,
"balance": 0,
"total": 0
},
"matters": [
{
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
}
],
"group": {
"id": 0,
"etag": "string",
"name": "string",
"type": "UserGroup"
},
"bill_theme": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"account_id": 0,
"default": true,
"name": "string",
"config": "string"
},
"original_bill": {
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0
},
"destination_account": {
"id": 0,
"etag": "string",
"holder": "string",
"name": "string",
"institution": "string",
"domicile_branch": "string",
"account_number": "string",
"transit_number": "string",
"swift": "string",
"currency": "string",
"balance": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"type": "Operating",
"default_account": true,
"general_ledger_number": "string",
"bank_transactions_count": 0
},
"balances": [
{
"id": 0,
"amount": 0,
"type": "Matter",
"interest_amount": 0,
"due": 0
}
],
"matter_totals": [
{
"id": 0,
"amount": 0
}
],
"currency": {
"id": 0,
"etag": "string",
"code": "string",
"sign": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"billing_setting": {
"etag": "string",
"rounded_duration": 0,
"rounding": 0,
"use_decimal_rounding": true,
"currency": "string",
"currency_sign": "string",
"tax_rate": 0,
"tax_name": "string",
"use_secondary_tax": true,
"secondary_tax_rate": 0,
"secondary_tax_rule": "Pre",
"secondary_tax_name": "string",
"notify_after_bill_created": true
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Bill_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » user | User_base | false | No description |
| » client | Contact_base | false | No description |
| » discount | Discount_base | false | No description |
| » interest | Interest_base | false | No description |
| » matters | [Matter_base] | false | Matter |
| » group | Group_base | false | No description |
| » bill_theme | BillTheme_base | false | No description |
| » original_bill | Bill_base | false | No description |
| » destination_account | BankAccount_base | false | No description |
| » balances | [Balance_base] | false | Balance |
| » matter_totals | [MatterBalance_base] | false | MatterBalance |
| » currency | Currency_base | false | No description |
| » billing_setting | BillingSetting_base | false | No description |
BillShow
{
"data": {
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0,
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"client": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"discount": {
"rate": 0,
"type": "percentage",
"note": "string",
"early_payment_rate": 0,
"early_payment_period": 0
},
"interest": {
"rate": 0,
"type": "simple",
"period": 0,
"balance": 0,
"total": 0
},
"matters": [
{
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
}
],
"group": {
"id": 0,
"etag": "string",
"name": "string",
"type": "UserGroup"
},
"bill_theme": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"account_id": 0,
"default": true,
"name": "string",
"config": "string"
},
"original_bill": {
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0
},
"destination_account": {
"id": 0,
"etag": "string",
"holder": "string",
"name": "string",
"institution": "string",
"domicile_branch": "string",
"account_number": "string",
"transit_number": "string",
"swift": "string",
"currency": "string",
"balance": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"type": "Operating",
"default_account": true,
"general_ledger_number": "string",
"bank_transactions_count": 0
},
"balances": [
{
"id": 0,
"amount": 0,
"type": "Matter",
"interest_amount": 0,
"due": 0
}
],
"matter_totals": [
{
"id": 0,
"amount": 0
}
],
"currency": {
"id": 0,
"etag": "string",
"code": "string",
"sign": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"billing_setting": {
"etag": "string",
"rounded_duration": 0,
"rounding": 0,
"use_decimal_rounding": true,
"currency": "string",
"currency_sign": "string",
"tax_rate": 0,
"tax_name": "string",
"use_secondary_tax": true,
"secondary_tax_rate": 0,
"secondary_tax_rule": "Pre",
"secondary_tax_name": "string",
"notify_after_bill_created": true
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | Bill | true | No description |
BillList
{
"data": [
{
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0,
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"client": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"discount": {
"rate": 0,
"type": "percentage",
"note": "string",
"early_payment_rate": 0,
"early_payment_period": 0
},
"interest": {
"rate": 0,
"type": "simple",
"period": 0,
"balance": 0,
"total": 0
},
"matters": [
{
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
}
],
"group": {
"id": 0,
"etag": "string",
"name": "string",
"type": "UserGroup"
},
"bill_theme": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"account_id": 0,
"default": true,
"name": "string",
"config": "string"
},
"original_bill": {
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0
},
"destination_account": {
"id": 0,
"etag": "string",
"holder": "string",
"name": "string",
"institution": "string",
"domicile_branch": "string",
"account_number": "string",
"transit_number": "string",
"swift": "string",
"currency": "string",
"balance": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"type": "Operating",
"default_account": true,
"general_ledger_number": "string",
"bank_transactions_count": 0
},
"balances": [
{
"id": 0,
"amount": 0,
"type": "Matter",
"interest_amount": 0,
"due": 0
}
],
"matter_totals": [
{
"id": 0,
"amount": 0
}
],
"currency": {
"id": 0,
"etag": "string",
"code": "string",
"sign": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"billing_setting": {
"etag": "string",
"rounded_duration": 0,
"rounding": 0,
"use_decimal_rounding": true,
"currency": "string",
"currency_sign": "string",
"tax_rate": 0,
"tax_name": "string",
"use_secondary_tax": true,
"secondary_tax_rate": 0,
"secondary_tax_rule": "Pre",
"secondary_tax_name": "string",
"notify_after_bill_created": true
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [Bill] | true | Bill List Response |
Interest_base
{
"rate": 0,
"type": "simple",
"period": 0,
"balance": 0,
"total": 0
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| rate | number(double) | false | Rate for the Interest% |
| type | string | false | Type of Interest% being applied |
| period | integer(int32) | false | Number of days that represent the frequency which your Interest% will be applied |
| balance | number(double) | false | Interest balance for the object |
| total | number(double) | false | Interest total for the object |
Enumerated Values
| Property | Value |
|---|---|
| type | simple |
| type | compound |
Interest
{
"rate": 0,
"type": "simple",
"period": 0,
"balance": 0,
"total": 0
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Interest_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
BillTheme_base
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"account_id": 0,
"default": true,
"name": "string",
"config": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the BillTheme |
| etag | string | false | ETag for the BillTheme |
| created_at | string(date-time) | false | The time the BillTheme was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the BillTheme was last updated (as a ISO-8601 timestamp) |
| account_id | integer(int32) | false | The account number the BillTheme belongs to |
| default | boolean | false | Whether the BillTheme is the default for its account |
| name | string | false | The name of the BillTheme |
| config | string | false | The configuration of the BillTheme |
BillTheme
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"account_id": 0,
"default": true,
"name": "string",
"config": "string"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | BillTheme_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
BillThemeShow
{
"data": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"account_id": 0,
"default": true,
"name": "string",
"config": "string"
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | BillTheme | true | No description |
BillThemeList
{
"data": [
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"account_id": 0,
"default": true,
"name": "string",
"config": "string"
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [BillTheme] | true | BillTheme List Response |
BankAccount_base
{
"id": 0,
"etag": "string",
"holder": "string",
"name": "string",
"institution": "string",
"domicile_branch": "string",
"account_number": "string",
"transit_number": "string",
"swift": "string",
"currency": "string",
"balance": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"type": "Operating",
"default_account": true,
"general_ledger_number": "string",
"bank_transactions_count": 0
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the BankAccount |
| etag | string | false | ETag for the BankAccount |
| holder | string | false | The name of the person or business that owns the BankAccount |
| name | string | false | The name of the BankAccount |
| institution | string | false | The financial institution where the BankAccount is registered |
| domicile_branch | string | false | The name of the branch where the account was opened |
| account_number | string | false | The account number for BankAccount |
| transit_number | string | false | Transit number for the bank account branch |
| swift | string | false | A unique identification code for the financial institution |
| currency | string | false | The currency type of the BankAccount |
| balance | number(double) | false | The current balance of the BankAccount |
| created_at | string(date-time) | false | The time the BankAccount was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the BankAccount was last updated (as a ISO-8601 timestamp) |
| type | string | false | The type of the BankAccount |
| default_account | boolean | false | Whether it is the default account |
| general_ledger_number | string | false | General ledger number |
| bank_transactions_count | integer(int32) | false | The number of bank transactions associated with the account. |
Enumerated Values
| Property | Value |
|---|---|
| type | Operating |
| type | Trust |
BankAccount
{
"id": 0,
"etag": "string",
"holder": "string",
"name": "string",
"institution": "string",
"domicile_branch": "string",
"account_number": "string",
"transit_number": "string",
"swift": "string",
"currency": "string",
"balance": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"type": "Operating",
"default_account": true,
"general_ledger_number": "string",
"bank_transactions_count": 0,
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"clio_payments_merchant_account_mapping": {
"id": 0,
"etag": "string",
"merchant_account_id": 0,
"merchant_account_name": "string",
"is_cvv_required": true,
"required_fields": "string"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | BankAccount_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » user | User_base | false | No description |
| » clio_payments_merchant_account_mapping | ClioPaymentsMerchantAccountMapping_base | false | No description |
BankAccountShow
{
"data": {
"id": 0,
"etag": "string",
"holder": "string",
"name": "string",
"institution": "string",
"domicile_branch": "string",
"account_number": "string",
"transit_number": "string",
"swift": "string",
"currency": "string",
"balance": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"type": "Operating",
"default_account": true,
"general_ledger_number": "string",
"bank_transactions_count": 0,
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"clio_payments_merchant_account_mapping": {
"id": 0,
"etag": "string",
"merchant_account_id": 0,
"merchant_account_name": "string",
"is_cvv_required": true,
"required_fields": "string"
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | BankAccount | true | No description |
BankAccountList
{
"data": [
{
"id": 0,
"etag": "string",
"holder": "string",
"name": "string",
"institution": "string",
"domicile_branch": "string",
"account_number": "string",
"transit_number": "string",
"swift": "string",
"currency": "string",
"balance": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"type": "Operating",
"default_account": true,
"general_ledger_number": "string",
"bank_transactions_count": 0,
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"clio_payments_merchant_account_mapping": {
"id": 0,
"etag": "string",
"merchant_account_id": 0,
"merchant_account_name": "string",
"is_cvv_required": true,
"required_fields": "string"
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [BankAccount] | true | BankAccount List Response |
ClioPaymentsMerchantAccountMapping_base
{
"id": 0,
"etag": "string",
"merchant_account_id": 0,
"merchant_account_name": "string",
"is_cvv_required": true,
"required_fields": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the ClioPaymentsMerchantAccountMapping |
| etag | string | false | ETag for the ClioPaymentsMerchantAccountMapping |
| merchant_account_id | integer(int32) | false | The ID of the merchant account. |
| merchant_account_name | string | false | The name of the Clio Payments merchant account. |
| is_cvv_required | boolean | false | Whether or not the CVV is required by the merchant account. |
| required_fields | string | false | The fields required by the merchant account. |
ClioPaymentsMerchantAccountMapping
{
"id": 0,
"etag": "string",
"merchant_account_id": 0,
"merchant_account_name": "string",
"is_cvv_required": true,
"required_fields": "string"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | ClioPaymentsMerchantAccountMapping_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
MatterBalance_base
{
"id": 0,
"amount": 0
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the MatterBalance |
| amount | number(double) | false | The amount of balance of a matter. |
MatterBalance
{
"id": 0,
"amount": 0
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | MatterBalance_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
Balance_base
{
"id": 0,
"amount": 0,
"type": "Matter",
"interest_amount": 0,
"due": 0
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Balance |
| amount | number(double) | false | The amount for this Balance. |
| type | string | false | The type of Balance this data is for. |
| interest_amount | number(double) | false | The interest amount for this Balance. |
| due | number(double) | false | The amount due for this Balance, factoring in applicable discounts. |
Enumerated Values
| Property | Value |
|---|---|
| type | Matter |
| type | Client |
Balance
{
"id": 0,
"amount": 0,
"type": "Matter",
"interest_amount": 0,
"due": 0
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Balance_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
Currency_base
{
"id": 0,
"etag": "string",
"code": "string",
"sign": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Currency |
| etag | string | false | ETag for the Currency |
| code | string | false | ISO 4217 code for the Currency |
| sign | string | false | Symbol used to denote monetary values using this Currency |
| created_at | string(date-time) | false | The time the Currency was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the Currency was last updated (as a ISO-8601 timestamp) |
Currency
{
"id": 0,
"etag": "string",
"code": "string",
"sign": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Currency_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
CurrencyList
{
"data": [
{
"id": 0,
"etag": "string",
"code": "string",
"sign": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [Currency] | true | Currency List Response |
BillingSetting_base
{
"etag": "string",
"rounded_duration": 0,
"rounding": 0,
"use_decimal_rounding": true,
"currency": "string",
"currency_sign": "string",
"tax_rate": 0,
"tax_name": "string",
"use_secondary_tax": true,
"secondary_tax_rate": 0,
"secondary_tax_rule": "Pre",
"secondary_tax_name": "string",
"notify_after_bill_created": true
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| etag | string | false | ETag for the BillingSetting |
| rounded_duration | number(float) | false | Rounded equivalent of duration submitted |
| rounding | integer(int32) | false | Minute increment for time rounding |
| use_decimal_rounding | boolean | false | Round time to two decimal places |
| currency | string | false | Current user setting of currency |
| currency_sign | string | false | The sign of the current currency |
| tax_rate | number(double) | false | Rate applied for primary tax on invoices using this BillingSetting |
| tax_name | string | false | Name shown for primary tax on invoices using this BillingSetting |
| use_secondary_tax | boolean | false | Used to determine if secondary tax applies to invoices using this BillingSetting |
| secondary_tax_rate | number(double) | false | Rate applied for secondary tax on invoices using this BillingSetting |
| secondary_tax_rule | string | false | Used to determine if secondary tax should be applied seperatly or addtional to primary tax |
| secondary_tax_name | string | false | Name shown for secondary tax on invoices using this BillingSetting |
| notify_after_bill_created | boolean | false | Flag to indicate if users should have the option to notify other users when generating a bill |
Enumerated Values
| Property | Value |
|---|---|
| secondary_tax_rule | Pre |
| secondary_tax_rule | Post |
BillingSetting
{
"etag": "string",
"rounded_duration": 0,
"rounding": 0,
"use_decimal_rounding": true,
"currency": "string",
"currency_sign": "string",
"tax_rate": 0,
"tax_name": "string",
"use_secondary_tax": true,
"secondary_tax_rate": 0,
"secondary_tax_rule": "Pre",
"secondary_tax_name": "string",
"notify_after_bill_created": true
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | BillingSetting_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
BillingSettingShow
{
"data": {
"etag": "string",
"rounded_duration": 0,
"rounding": 0,
"use_decimal_rounding": true,
"currency": "string",
"currency_sign": "string",
"tax_rate": 0,
"tax_name": "string",
"use_secondary_tax": true,
"secondary_tax_rate": 0,
"secondary_tax_rule": "Pre",
"secondary_tax_name": "string",
"notify_after_bill_created": true
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | BillingSetting | true | No description |
Allocation_base
{
"id": 0,
"etag": "string",
"date": "2018-03-22",
"amount": 0,
"interest": true,
"voided_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"description": "string",
"source_bank_account": "string",
"has_online_payment": true,
"destroyable": true
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Allocation |
| etag | string | false | ETag for the Allocation |
| date | string(date) | false | The date the allocation was applied (as a ISO-8601 date) |
| amount | number(double) | false | The total amount of money that the user has allocated |
| interest | boolean | false | Whether the allocation is applied to interest amount |
| voided_at | string(date-time) | false | Time the Allocation was voided (as a ISO-8601 timestamp) |
| created_at | string(date-time) | false | The time the Allocation was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the Allocation was last updated (as a ISO-8601 timestamp) |
| description | string | false | The description from the associated Credit Memo (if applicable) |
| source_bank_account | string | false | The bank account from which funds originated |
| has_online_payment | boolean | false | Whether this allocation is associated with an online payment or not |
| destroyable | boolean | false | Whether the record can be deleted or not |
Allocation
{
"id": 0,
"etag": "string",
"date": "2018-03-22",
"amount": 0,
"interest": true,
"voided_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"description": "string",
"source_bank_account": "string",
"has_online_payment": true,
"destroyable": true,
"bill": {
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0
},
"destination_bank_account": {
"id": 0,
"etag": "string",
"holder": "string",
"name": "string",
"institution": "string",
"domicile_branch": "string",
"account_number": "string",
"transit_number": "string",
"swift": "string",
"currency": "string",
"balance": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"type": "Operating",
"default_account": true,
"general_ledger_number": "string",
"bank_transactions_count": 0
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"parent": {
"id": 0,
"type": "Task",
"identifier": "string",
"secondary_identifier": "string"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Allocation_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » bill | Bill_base | false | No description |
| » destination_bank_account | BankAccount_base | false | No description |
| » matter | Matter_base | false | No description |
| » contact | Contact_base | false | No description |
| » parent | PolymorphicObject_base | false | No description |
AllocationShow
{
"data": {
"id": 0,
"etag": "string",
"date": "2018-03-22",
"amount": 0,
"interest": true,
"voided_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"description": "string",
"source_bank_account": "string",
"has_online_payment": true,
"destroyable": true,
"bill": {
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0
},
"destination_bank_account": {
"id": 0,
"etag": "string",
"holder": "string",
"name": "string",
"institution": "string",
"domicile_branch": "string",
"account_number": "string",
"transit_number": "string",
"swift": "string",
"currency": "string",
"balance": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"type": "Operating",
"default_account": true,
"general_ledger_number": "string",
"bank_transactions_count": 0
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"parent": {
"id": 0,
"type": "Task",
"identifier": "string",
"secondary_identifier": "string"
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | Allocation | true | No description |
AllocationList
{
"data": [
{
"id": 0,
"etag": "string",
"date": "2018-03-22",
"amount": 0,
"interest": true,
"voided_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"description": "string",
"source_bank_account": "string",
"has_online_payment": true,
"destroyable": true,
"bill": {
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0
},
"destination_bank_account": {
"id": 0,
"etag": "string",
"holder": "string",
"name": "string",
"institution": "string",
"domicile_branch": "string",
"account_number": "string",
"transit_number": "string",
"swift": "string",
"currency": "string",
"balance": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"type": "Operating",
"default_account": true,
"general_ledger_number": "string",
"bank_transactions_count": 0
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"parent": {
"id": 0,
"type": "Task",
"identifier": "string",
"secondary_identifier": "string"
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [Allocation] | true | Allocation List Response |
BankTransfer_base
{
"id": 0,
"etag": "string",
"amount": 0,
"date": "2018-03-22T20:30:34Z",
"description": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the BankTransfer |
| etag | string | false | ETag for the BankTransfer |
| amount | number(double) | false | The amount of the transfer. |
| date | string(date-time) | false | The date of the transfer. |
| description | string | false | The description of the transfer. |
BankTransfer
{
"id": 0,
"etag": "string",
"amount": 0,
"date": "2018-03-22T20:30:34Z",
"description": "string",
"client": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"source_account": {
"id": 0,
"etag": "string",
"holder": "string",
"name": "string",
"institution": "string",
"domicile_branch": "string",
"account_number": "string",
"transit_number": "string",
"swift": "string",
"currency": "string",
"balance": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"type": "Operating",
"default_account": true,
"general_ledger_number": "string",
"bank_transactions_count": 0
},
"destination_account": {
"id": 0,
"etag": "string",
"holder": "string",
"name": "string",
"institution": "string",
"domicile_branch": "string",
"account_number": "string",
"transit_number": "string",
"swift": "string",
"currency": "string",
"balance": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"type": "Operating",
"default_account": true,
"general_ledger_number": "string",
"bank_transactions_count": 0
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | BankTransfer_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » client | Contact_base | false | No description |
| » matter | Matter_base | false | No description |
| » source_account | BankAccount_base | false | No description |
| » destination_account | BankAccount_base | false | No description |
BankTransferShow
{
"data": {
"id": 0,
"etag": "string",
"amount": 0,
"date": "2018-03-22T20:30:34Z",
"description": "string",
"client": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"source_account": {
"id": 0,
"etag": "string",
"holder": "string",
"name": "string",
"institution": "string",
"domicile_branch": "string",
"account_number": "string",
"transit_number": "string",
"swift": "string",
"currency": "string",
"balance": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"type": "Operating",
"default_account": true,
"general_ledger_number": "string",
"bank_transactions_count": 0
},
"destination_account": {
"id": 0,
"etag": "string",
"holder": "string",
"name": "string",
"institution": "string",
"domicile_branch": "string",
"account_number": "string",
"transit_number": "string",
"swift": "string",
"currency": "string",
"balance": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"type": "Operating",
"default_account": true,
"general_ledger_number": "string",
"bank_transactions_count": 0
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | BankTransfer | true | No description |
BillableClient_base
{
"id": 0,
"unbilled_hours": 0,
"unbilled_amount": 0,
"amount_in_trust": 0,
"name": "string",
"billable_matters_count": 0
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the BillableClient |
| unbilled_hours | number(double) | false | The unbilled hours of the client |
| unbilled_amount | number(double) | false | The unbilled amount of the client |
| amount_in_trust | number(double) | false | The trust amount available for the client |
| name | string | false | The name of the Client |
| billable_matters_count | integer(int32) | false | The total number of billable matters the client has |
BillableClient
{
"id": 0,
"unbilled_hours": 0,
"unbilled_amount": 0,
"amount_in_trust": 0,
"name": "string",
"billable_matters_count": 0,
"billable_matters": [
{
"id": 0,
"unbilled_hours": 0,
"unbilled_amount": 0,
"amount_in_trust": 0,
"display_number": "string"
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | BillableClient_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » billable_matters | [BillableMatter_base] | false | BillableMatter |
BillableClientList
{
"data": [
{
"id": 0,
"unbilled_hours": 0,
"unbilled_amount": 0,
"amount_in_trust": 0,
"name": "string",
"billable_matters_count": 0,
"billable_matters": [
{
"id": 0,
"unbilled_hours": 0,
"unbilled_amount": 0,
"amount_in_trust": 0,
"display_number": "string"
}
]
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [BillableClient] | true | BillableClient List Response |
BillableMatter_base
{
"id": 0,
"unbilled_hours": 0,
"unbilled_amount": 0,
"amount_in_trust": 0,
"display_number": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the BillableMatter |
| unbilled_hours | number(double) | false | The unbilled number of hours for the matter |
| unbilled_amount | number(double) | false | The unbilled amount for the matter |
| amount_in_trust | number(double) | false | The trust amount available for the matter |
| display_number | string | false | The reference to the matter |
BillableMatter
{
"id": 0,
"unbilled_hours": 0,
"unbilled_amount": 0,
"amount_in_trust": 0,
"display_number": "string",
"client": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | BillableMatter_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » client | Contact_base | false | No description |
BillableMatterShow
{
"data": {
"id": 0,
"unbilled_hours": 0,
"unbilled_amount": 0,
"amount_in_trust": 0,
"display_number": "string",
"client": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | BillableMatter | true | No description |
BillableMatterList
{
"data": [
{
"id": 0,
"unbilled_hours": 0,
"unbilled_amount": 0,
"amount_in_trust": 0,
"display_number": "string",
"client": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [BillableMatter] | true | BillableMatter List Response |
Jurisdiction_base
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"system_id": 0,
"description": "string",
"default": true
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Jurisdiction |
| etag | string | false | ETag for the Jurisdiction |
| created_at | string(date-time) | false | The time the Jurisdiction was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the Jurisdiction was last updated (as a ISO-8601 timestamp) |
| system_id | integer(int32) | false | Server ID |
| description | string | false | Description |
| default | boolean | false | Whether the Jurisdiction is default for the current user |
Jurisdiction
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"system_id": 0,
"description": "string",
"default": true
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Jurisdiction_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
JurisdictionShow
{
"data": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"system_id": 0,
"description": "string",
"default": true
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | Jurisdiction | true | No description |
JurisdictionList
{
"data": [
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"system_id": 0,
"description": "string",
"default": true
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [Jurisdiction] | true | Jurisdiction List Response |
JurisdictionsToTrigger_base
{
"id": 0,
"etag": "string",
"system_id": 0,
"description": "string",
"do_not_recalculate": true,
"is_served": true,
"is_requirements_required": true
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the JurisdictionsToTrigger |
| etag | string | false | ETag for the JurisdictionsToTrigger |
| system_id | integer(int32) | false | Server id |
| description | string | false | A detailed description of the JurisdictionsToTrigger |
| do_not_recalculate | boolean | false | Whether the associated dates should not be recalculated |
| is_served | boolean | false | Whether the user must select a Date Offset (Service Type) |
| is_requirements_required | boolean | false | Whether the trigger has requirements |
JurisdictionsToTrigger
{
"id": 0,
"etag": "string",
"system_id": 0,
"description": "string",
"do_not_recalculate": true,
"is_served": true,
"is_requirements_required": true
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | JurisdictionsToTrigger_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
JurisdictionsToTriggerShow
{
"data": {
"id": 0,
"etag": "string",
"system_id": 0,
"description": "string",
"do_not_recalculate": true,
"is_served": true,
"is_requirements_required": true
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | JurisdictionsToTrigger | true | No description |
JurisdictionsToTriggerList
{
"data": [
{
"id": 0,
"etag": "string",
"system_id": 0,
"description": "string",
"do_not_recalculate": true,
"is_served": true,
"is_requirements_required": true
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [JurisdictionsToTrigger] | true | JurisdictionsToTrigger List Response |
ClioPaymentsCard_base
{
"id": 0,
"user_id": 0,
"contact_id": 0,
"number": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"card_type": 0,
"account_id": 0
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the ClioPaymentsCard |
| user_id | integer(int32) | false | The unique identifier for the user of the ClioPaymentsCard. |
| contact_id | integer(int32) | false | The unique identifier for the contact of the ClioPaymentsCard. |
| number | string | false | The last four digits of the ClioPaymentsCard. |
| created_at | string(date-time) | false | The time the ClioPaymentsCard was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the ClioPaymentsCard was last updated (as a ISO-8601 timestamp) |
| card_type | integer(int32) | false | The type of the ClioPaymentsCard. |
| account_id | integer(int32) | false | Identifier for the Clio account associated with the ClioPaymentsCard. |
Enumerated Values
| Property | Value |
|---|---|
| card_type | 0 |
| card_type | 1 |
| card_type | 2 |
| card_type | 3 |
| card_type | 4 |
| card_type | 5 |
| card_type | 6 |
ClioPaymentsCard
{
"id": 0,
"user_id": 0,
"contact_id": 0,
"number": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"card_type": 0,
"account_id": 0
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | ClioPaymentsCard_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
ClioPaymentsCardShow
{
"data": {
"id": 0,
"user_id": 0,
"contact_id": 0,
"number": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"card_type": 0,
"account_id": 0
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | ClioPaymentsCard | true | No description |
InterestCharge_base
{
"id": 0,
"etag": "string",
"date": "2018-03-22",
"description": "string",
"total": 0
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the InterestCharge |
| etag | string | false | ETag for the InterestCharge |
| date | string(date) | false | The InterestCharge date (as a ISO-8601 date) |
| description | string | false | The description for the InterestCharge |
| total | number(double) | false | The total amount for the InterestCharge |
InterestCharge
{
"id": 0,
"etag": "string",
"date": "2018-03-22",
"description": "string",
"total": 0,
"bill": {
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0
},
"balances": [
{
"id": 0,
"amount": 0,
"type": "Matter",
"interest_amount": 0,
"due": 0
}
],
"matters": [
{
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | InterestCharge_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » bill | Bill_base | false | No description |
| » balances | [Balance_base] | false | Balance |
| » matters | [Matter_base] | false | Matter |
InterestChargeList
{
"data": [
{
"id": 0,
"etag": "string",
"date": "2018-03-22",
"description": "string",
"total": 0,
"bill": {
"id": 0,
"etag": "string",
"number": "string",
"issued_at": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"due_at": "2018-03-22",
"tax_rate": 0,
"secondary_tax_rate": 0,
"updated_at": "2018-03-22T20:30:34Z",
"subject": "string",
"purchase_order": "string",
"type": "MatterBill",
"memo": "string",
"start_at": "2018-03-22",
"end_at": "2018-03-22",
"balance": 0,
"config": "string",
"state": "draft",
"kind": "revenue_kind",
"total": 0,
"paid": 0,
"paid_at": "2018-03-22T20:30:34Z",
"pending": 0,
"due": 0,
"can_update": true,
"credits_issued": 0,
"client_addresses": "string",
"shared": true,
"sub_total": 0,
"tax_sum": 0,
"secondary_tax_sum": 0
},
"balances": [
{
"id": 0,
"amount": 0,
"type": "Matter",
"interest_amount": 0,
"due": 0
}
],
"matters": [
{
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
}
]
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [InterestCharge] | true | InterestCharge List Response |
LogEntry_base
{
"id": 0,
"type": "MatterLogEntry",
"accessed_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the LogEntry |
| type | string | false | The type of the LogEntry |
| accessed_at | string(date-time) | false | The time the item was last accessed (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| type | MatterLogEntry |
| type | ContactLogEntry |
LogEntry
{
"id": 0,
"type": "MatterLogEntry",
"accessed_at": "2018-03-22T20:30:34Z",
"item": {
"id": 0,
"type": "Task",
"identifier": "string",
"secondary_identifier": "string"
},
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | LogEntry_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » item | PolymorphicObject_base | false | No description |
| » user | User_base | false | No description |
LogEntryList
{
"data": [
{
"id": 0,
"type": "MatterLogEntry",
"accessed_at": "2018-03-22T20:30:34Z",
"item": {
"id": 0,
"type": "Task",
"identifier": "string",
"secondary_identifier": "string"
},
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [LogEntry] | true | LogEntry List Response |
Contact_base
{
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Contact |
| etag | string | false | ETag for the Contact |
| name | string | false | The full name of the Contact |
| first_name | string | false | First name of the Person |
| last_name | string | false | Last name of the Person |
| type | string | false | The type of the Contact |
| created_at | string(date-time) | false | The time the Contact was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the Contact was last updated (as a ISO-8601 timestamp) |
| clio_connect_email | string | false | Clio Connect email if the Contact is a ClioConnect User |
| prefix | string | false | The prefix of the Contact (Mr, Mrs, etc) |
| title | string | false | The designated title of the Contact |
| initials | string | false | The initials of the Contact |
| client_connect_user_id | integer(int32) | false | The ID for the Clio Connect user associated with this Contact |
| primary_email_address | string | false | The primary email address associated with this Contact. |
| primary_phone_number | string | false | The primary phone number associated with this Contact. |
| ledes_client_id | string | false | Ledes client id of the Contact |
Enumerated Values
| Property | Value |
|---|---|
| type | Company |
| type | Person |
Contact
{
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string",
"activity_rates": [
{
"id": 0,
"etag": "string",
"rate": 0,
"flat_rate": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"contact_id": 0,
"co_counsel_contact_id": 0
}
],
"addresses": [
{
"id": 0,
"etag": "string",
"street": "string",
"city": "string",
"province": "string",
"postal_code": "string",
"country": "string",
"name": "Work",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"custom_field_values": [
{
"id": "string",
"etag": "string",
"field_name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"field_type": "checkbox",
"field_required": true,
"field_displayed": true,
"field_display_order": 0,
"value": "string",
"picklist_option": "string"
}
],
"email_addresses": [
{
"id": 0,
"etag": "string",
"address": "string",
"name": "Work",
"default_email": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"instant_messengers": [
{
"id": 0,
"etag": "string",
"address": "string",
"name": "Work",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"phone_numbers": [
{
"id": 0,
"etag": "string",
"number": "string",
"name": "Work",
"default_number": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"web_sites": [
{
"id": 0,
"etag": "string",
"address": "string",
"name": "Work",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"notification_methods": [
{
"id": 0,
"etag": "string",
"type": "Email",
"email_address": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"account_balances": [
{
"id": 0,
"balance": 0,
"type": "string",
"name": "string"
}
],
"company": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"avatar": {
"id": 0,
"etag": "string",
"url": "string"
},
"payment_profile": {
"id": 0,
"etag": "string",
"billing_setting_id": 0,
"name": "string",
"terms": 0,
"discount_rate": 0,
"discount_period": 0,
"interest_rate": 0,
"interest_period": 0,
"interest_type": "simple"
},
"folder": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Folder",
"locked": true,
"name": "string",
"root": true
},
"co_counsel_rate": {
"id": 0,
"etag": "string",
"rate": 0,
"flat_rate": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"contact_id": 0,
"co_counsel_contact_id": 0
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Contact_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » activity_rates | [ActivityRate_base] | false | ActivityRate |
| » addresses | [Address_base] | false | Address |
| » custom_field_values | [CustomFieldValue_base] | false | CustomFieldValue |
| » email_addresses | [EmailAddress_base] | false | EmailAddress |
| » instant_messengers | [InstantMessenger_base] | false | InstantMessenger |
| » phone_numbers | [PhoneNumber_base] | false | PhoneNumber |
| » web_sites | [WebSite_base] | false | WebSite |
| » notification_methods | [NotificationMethod_base] | false | NotificationMethod |
| » account_balances | [AccountBalance_base] | false | AccountBalance |
| » company | Contact_base | false | No description |
| » avatar | Avatar_base | false | No description |
| » payment_profile | PaymentProfile_base | false | No description |
| » folder | Folder_base | false | No description |
| » co_counsel_rate | ActivityRate_base | false | No description |
ContactShow
{
"data": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string",
"activity_rates": [
{
"id": 0,
"etag": "string",
"rate": 0,
"flat_rate": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"contact_id": 0,
"co_counsel_contact_id": 0
}
],
"addresses": [
{
"id": 0,
"etag": "string",
"street": "string",
"city": "string",
"province": "string",
"postal_code": "string",
"country": "string",
"name": "Work",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"custom_field_values": [
{
"id": "string",
"etag": "string",
"field_name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"field_type": "checkbox",
"field_required": true,
"field_displayed": true,
"field_display_order": 0,
"value": "string",
"picklist_option": "string"
}
],
"email_addresses": [
{
"id": 0,
"etag": "string",
"address": "string",
"name": "Work",
"default_email": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"instant_messengers": [
{
"id": 0,
"etag": "string",
"address": "string",
"name": "Work",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"phone_numbers": [
{
"id": 0,
"etag": "string",
"number": "string",
"name": "Work",
"default_number": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"web_sites": [
{
"id": 0,
"etag": "string",
"address": "string",
"name": "Work",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"notification_methods": [
{
"id": 0,
"etag": "string",
"type": "Email",
"email_address": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"account_balances": [
{
"id": 0,
"balance": 0,
"type": "string",
"name": "string"
}
],
"company": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"avatar": {
"id": 0,
"etag": "string",
"url": "string"
},
"payment_profile": {
"id": 0,
"etag": "string",
"billing_setting_id": 0,
"name": "string",
"terms": 0,
"discount_rate": 0,
"discount_period": 0,
"interest_rate": 0,
"interest_period": 0,
"interest_type": "simple"
},
"folder": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Folder",
"locked": true,
"name": "string",
"root": true
},
"co_counsel_rate": {
"id": 0,
"etag": "string",
"rate": 0,
"flat_rate": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"contact_id": 0,
"co_counsel_contact_id": 0
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | Contact | true | No description |
ContactList
{
"data": [
{
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string",
"activity_rates": [
{
"id": 0,
"etag": "string",
"rate": 0,
"flat_rate": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"contact_id": 0,
"co_counsel_contact_id": 0
}
],
"addresses": [
{
"id": 0,
"etag": "string",
"street": "string",
"city": "string",
"province": "string",
"postal_code": "string",
"country": "string",
"name": "Work",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"custom_field_values": [
{
"id": "string",
"etag": "string",
"field_name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"field_type": "checkbox",
"field_required": true,
"field_displayed": true,
"field_display_order": 0,
"value": "string",
"picklist_option": "string"
}
],
"email_addresses": [
{
"id": 0,
"etag": "string",
"address": "string",
"name": "Work",
"default_email": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"instant_messengers": [
{
"id": 0,
"etag": "string",
"address": "string",
"name": "Work",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"phone_numbers": [
{
"id": 0,
"etag": "string",
"number": "string",
"name": "Work",
"default_number": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"web_sites": [
{
"id": 0,
"etag": "string",
"address": "string",
"name": "Work",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"notification_methods": [
{
"id": 0,
"etag": "string",
"type": "Email",
"email_address": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"account_balances": [
{
"id": 0,
"balance": 0,
"type": "string",
"name": "string"
}
],
"company": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"avatar": {
"id": 0,
"etag": "string",
"url": "string"
},
"payment_profile": {
"id": 0,
"etag": "string",
"billing_setting_id": 0,
"name": "string",
"terms": 0,
"discount_rate": 0,
"discount_period": 0,
"interest_rate": 0,
"interest_period": 0,
"interest_type": "simple"
},
"folder": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Folder",
"locked": true,
"name": "string",
"root": true
},
"co_counsel_rate": {
"id": 0,
"etag": "string",
"rate": 0,
"flat_rate": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"contact_id": 0,
"co_counsel_contact_id": 0
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [Contact] | true | Contact List Response |
ActivityRate_base
{
"id": 0,
"etag": "string",
"rate": 0,
"flat_rate": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"contact_id": 0,
"co_counsel_contact_id": 0
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the ActivityRate |
| etag | string | false | ETag for the ActivityRate |
| rate | number(double) | false | Monetary value of this rate. Either hourly value or flat rate value |
| flat_rate | boolean | false | Whether this is a flat rate |
| created_at | string(date-time) | false | The time the ActivityRate was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the ActivityRate was last updated (as a ISO-8601 timestamp) |
| contact_id | integer(int32) | false | Filter ActivityRate records for the contact. |
| co_counsel_contact_id | integer(int32) | false | Filter ActivityRate records for the co-counsel. |
ActivityRate
{
"id": 0,
"etag": "string",
"rate": 0,
"flat_rate": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"contact_id": 0,
"co_counsel_contact_id": 0,
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"group": {
"id": 0,
"etag": "string",
"name": "string",
"type": "UserGroup"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | ActivityRate_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » user | User_base | false | No description |
| » group | Group_base | false | No description |
ActivityRateShow
{
"data": {
"id": 0,
"etag": "string",
"rate": 0,
"flat_rate": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"contact_id": 0,
"co_counsel_contact_id": 0,
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"group": {
"id": 0,
"etag": "string",
"name": "string",
"type": "UserGroup"
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | ActivityRate | true | No description |
ActivityRateList
{
"data": [
{
"id": 0,
"etag": "string",
"rate": 0,
"flat_rate": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"contact_id": 0,
"co_counsel_contact_id": 0,
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"group": {
"id": 0,
"etag": "string",
"name": "string",
"type": "UserGroup"
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [ActivityRate] | true | ActivityRate List Response |
User_base
{
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| account_owner | boolean | false | Whether the User is the owner of the account |
| clio_connect | boolean | false | Whether the User is a Clio Connect user |
| court_rules_default_attendee | boolean | false | Whether the User is a default attendee for court rules events |
| default_calendar_id | integer(int32) | false | Default calendar id for User. |
| string | false | The email of the User | |
| enabled | boolean | false | Whether the User is allowed to log in |
| etag | string | false | ETag for the User |
| first_name | string | false | The first name of the User |
| id | integer(int32) | false | Unique identifier for the User |
| initials | string | false | The initials of the User |
| last_name | string | false | The last name of the User |
| name | string | false | The full name of the User |
| phone_number | string | false | The primary phone number for the User. |
| rate | number(float) | false | Default user activity rate for User. |
| subscription_type | string | false | The subscription type of the User |
| time_zone | string | false | The selected time zone of the User |
| created_at | string(date-time) | false | The time the User was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the User was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| subscription_type | Attorney |
| subscription_type | NonAttorney |
User
{
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"default_activity_description": {
"id": 0,
"etag": "string",
"name": "string",
"visible_to_co_counsel": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"default": true,
"type": "string",
"utbms_activity_id": 0,
"utbms_task_name": "string",
"utbms_task_id": 0,
"accessible_to_user": true
},
"notification_methods": [
{
"id": 0,
"etag": "string",
"type": "Email",
"email_address": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"account": {
"id": 0,
"etag": "string",
"name": "string"
},
"avatar": {
"id": 0,
"etag": "string",
"url": "string"
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | User_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » default_activity_description | ActivityDescription_base | false | No description |
| » notification_methods | [NotificationMethod_base] | false | NotificationMethod |
| » account | Account_base | false | No description |
| » avatar | Avatar_base | false | No description |
| » contact | Contact_base | false | No description |
UserShow
{
"data": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"default_activity_description": {
"id": 0,
"etag": "string",
"name": "string",
"visible_to_co_counsel": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"default": true,
"type": "string",
"utbms_activity_id": 0,
"utbms_task_name": "string",
"utbms_task_id": 0,
"accessible_to_user": true
},
"notification_methods": [
{
"id": 0,
"etag": "string",
"type": "Email",
"email_address": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"account": {
"id": 0,
"etag": "string",
"name": "string"
},
"avatar": {
"id": 0,
"etag": "string",
"url": "string"
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | User | true | No description |
UserList
{
"data": [
{
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"default_activity_description": {
"id": 0,
"etag": "string",
"name": "string",
"visible_to_co_counsel": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"default": true,
"type": "string",
"utbms_activity_id": 0,
"utbms_task_name": "string",
"utbms_task_id": 0,
"accessible_to_user": true
},
"notification_methods": [
{
"id": 0,
"etag": "string",
"type": "Email",
"email_address": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"account": {
"id": 0,
"etag": "string",
"name": "string"
},
"avatar": {
"id": 0,
"etag": "string",
"url": "string"
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [User] | true | User List Response |
ActivityDescription_base
{
"id": 0,
"etag": "string",
"name": "string",
"visible_to_co_counsel": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"default": true,
"type": "string",
"utbms_activity_id": 0,
"utbms_task_name": "string",
"utbms_task_id": 0,
"accessible_to_user": true
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the ActivityDescription |
| etag | string | false | ETag for the ActivityDescription |
| name | string | false | The name of the ActivityDescription |
| visible_to_co_counsel | boolean | false | A toggle that determines if a co-counsel user of the firm can have access to this activity description |
| created_at | string(date-time) | false | The time the ActivityDescription was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the ActivityDescription was last updated (as a ISO-8601 timestamp) |
| default | boolean | false | Whether it is the user's default activity description |
| type | string | false | The type of the ActivityDescription |
| utbms_activity_id | integer(int32) | false | The UTBMS activity id if the ActivityDescription is a UTBMS activity description |
| utbms_task_name | string | false | The UTBMS activity task name if attached to a UTBMS activity description |
| utbms_task_id | integer(int32) | false | The UTBMS activity task id if attached to a UTBMS activity description |
| accessible_to_user | boolean | false | Determines if activity description is accessible to user |
ActivityDescription
{
"id": 0,
"etag": "string",
"name": "string",
"visible_to_co_counsel": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"default": true,
"type": "string",
"utbms_activity_id": 0,
"utbms_task_name": "string",
"utbms_task_id": 0,
"accessible_to_user": true,
"groups": [
{
"id": 0,
"etag": "string",
"name": "string",
"type": "UserGroup"
}
],
"rate": {
"amount": 0,
"type": "User",
"hierarchy": "Default"
},
"utbms_task": {
"id": 0,
"etag": "string",
"name": "string",
"code": "string",
"description": "string",
"type": "UtbmsTask",
"utbms_set_id": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"utbms_activity": {
"id": 0,
"etag": "string",
"name": "string",
"code": "string",
"description": "string",
"type": "UtbmsTask",
"utbms_set_id": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | ActivityDescription_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » groups | [Group_base] | false | Group |
| » rate | ActivityDescriptionRate_base | false | No description |
| » utbms_task | UtbmsCode_base | false | No description |
| » utbms_activity | UtbmsCode_base | false | No description |
ActivityDescriptionShow
{
"data": {
"id": 0,
"etag": "string",
"name": "string",
"visible_to_co_counsel": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"default": true,
"type": "string",
"utbms_activity_id": 0,
"utbms_task_name": "string",
"utbms_task_id": 0,
"accessible_to_user": true,
"groups": [
{
"id": 0,
"etag": "string",
"name": "string",
"type": "UserGroup"
}
],
"rate": {
"amount": 0,
"type": "User",
"hierarchy": "Default"
},
"utbms_task": {
"id": 0,
"etag": "string",
"name": "string",
"code": "string",
"description": "string",
"type": "UtbmsTask",
"utbms_set_id": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"utbms_activity": {
"id": 0,
"etag": "string",
"name": "string",
"code": "string",
"description": "string",
"type": "UtbmsTask",
"utbms_set_id": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | ActivityDescription | true | No description |
ActivityDescriptionList
{
"data": [
{
"id": 0,
"etag": "string",
"name": "string",
"visible_to_co_counsel": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"default": true,
"type": "string",
"utbms_activity_id": 0,
"utbms_task_name": "string",
"utbms_task_id": 0,
"accessible_to_user": true,
"groups": [
{
"id": 0,
"etag": "string",
"name": "string",
"type": "UserGroup"
}
],
"rate": {
"amount": 0,
"type": "User",
"hierarchy": "Default"
},
"utbms_task": {
"id": 0,
"etag": "string",
"name": "string",
"code": "string",
"description": "string",
"type": "UtbmsTask",
"utbms_set_id": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"utbms_activity": {
"id": 0,
"etag": "string",
"name": "string",
"code": "string",
"description": "string",
"type": "UtbmsTask",
"utbms_set_id": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [ActivityDescription] | true | ActivityDescription List Response |
Group_base
{
"id": 0,
"etag": "string",
"name": "string",
"type": "UserGroup"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Group |
| etag | string | false | ETag for the Group |
| name | string | false | The name of the Group |
| type | string | false | The type of the Group |
Enumerated Values
| Property | Value |
|---|---|
| type | UserGroup |
| type | AdhocGroup |
| type | AccountGroup |
Group
{
"id": 0,
"etag": "string",
"name": "string",
"type": "UserGroup"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Group_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
GroupShow
{
"data": {
"id": 0,
"etag": "string",
"name": "string",
"type": "UserGroup"
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | Group | true | No description |
GroupList
{
"data": [
{
"id": 0,
"etag": "string",
"name": "string",
"type": "UserGroup"
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [Group] | true | Group List Response |
ActivityDescriptionRate_base
{
"amount": 0,
"type": "User",
"hierarchy": "Default"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| amount | number(double) | false | Monetary value of this rate. Either hourly value or flat rate value |
| type | string | false | What kind of rate it is. |
| hierarchy | string | false | What rate hierarchy the rate belongs to. |
Enumerated Values
| Property | Value |
|---|---|
| type | User |
| type | FlatRate |
| type | Custom |
| hierarchy | Default |
| hierarchy | Activity |
| hierarchy | Matter |
| hierarchy | Client |
ActivityDescriptionRate
{
"amount": 0,
"type": "User",
"hierarchy": "Default"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | ActivityDescriptionRate_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
UtbmsCode_base
{
"id": 0,
"etag": "string",
"name": "string",
"code": "string",
"description": "string",
"type": "UtbmsTask",
"utbms_set_id": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the UtbmsCode |
| etag | string | false | ETag for the UtbmsCode |
| name | string | false | The name of the UtbmsCode |
| code | string | false | The UTBMS code for the UtbmsCode |
| description | string | false | The UTBMS description for the UtbmsCode |
| type | string | false | The type of the UtbmsCode |
| utbms_set_id | integer(int32) | false | Set id for the UtbmsCode |
| created_at | string(date-time) | false | The time the UtbmsCode was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the UtbmsCode was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| type | UtbmsTask |
| type | UtbmsExpense |
| type | UtbmsActivity |
UtbmsCode
{
"id": 0,
"etag": "string",
"name": "string",
"code": "string",
"description": "string",
"type": "UtbmsTask",
"utbms_set_id": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | UtbmsCode_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
UtbmsCodeShow
{
"data": {
"id": 0,
"etag": "string",
"name": "string",
"code": "string",
"description": "string",
"type": "UtbmsTask",
"utbms_set_id": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | UtbmsCode | true | No description |
UtbmsCodeList
{
"data": [
{
"id": 0,
"etag": "string",
"name": "string",
"code": "string",
"description": "string",
"type": "UtbmsTask",
"utbms_set_id": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [UtbmsCode] | true | UtbmsCode List Response |
NotificationMethod_base
{
"id": 0,
"etag": "string",
"type": "Email",
"email_address": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the NotificationMethod |
| etag | string | false | ETag for the NotificationMethod |
| type | string | false | Human readable description of the type of notification |
| email_address | string | false | Email address to send the notification to (only for email type) |
| created_at | string(date-time) | false | The time the NotificationMethod was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the NotificationMethod was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| type | |
| type | Popup |
NotificationMethod
{
"id": 0,
"etag": "string",
"type": "Email",
"email_address": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | NotificationMethod_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » user | User_base | false | No description |
Account_base
{
"id": 0,
"etag": "string",
"name": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Account |
| etag | string | false | ETag for the Account |
| name | string | false | The name of the Account |
Account
{
"id": 0,
"etag": "string",
"name": "string",
"owner": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Account_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » owner | User_base | false | No description |
Avatar_base
{
"id": 0,
"etag": "string",
"url": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Avatar |
| etag | string | false | ETag for the Avatar |
| url | string | false | The URL for the Avatar |
Avatar
{
"id": 0,
"etag": "string",
"url": "string"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Avatar_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
Address_base
{
"id": 0,
"etag": "string",
"street": "string",
"city": "string",
"province": "string",
"postal_code": "string",
"country": "string",
"name": "Work",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Address |
| etag | string | false | ETag for the Address |
| street | string | false | Street of the Address |
| city | string | false | City of the Address |
| province | string | false | Province or state of the Address |
| postal_code | string | false | Postal code of the Address |
| country | string | false | Country of the Address |
| name | string | false | The name of the Address |
| created_at | string(date-time) | false | The time the Address was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the Address was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| name | Work |
| name | Home |
| name | Billing |
| name | Other |
Address
{
"id": 0,
"etag": "string",
"street": "string",
"city": "string",
"province": "string",
"postal_code": "string",
"country": "string",
"name": "Work",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Address_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
CustomFieldValue_base
{
"id": "string",
"etag": "string",
"field_name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"field_type": "checkbox",
"field_required": true,
"field_displayed": true,
"field_display_order": 0,
"value": "string",
"picklist_option": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | false | Unique identifier for the CustomFieldValue |
| etag | string | false | ETag for the CustomFieldValue |
| field_name | string | false | The name of the custom field |
| created_at | string(date-time) | false | The time the CustomFieldValue was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the CustomFieldValue was last updated (as a ISO-8601 timestamp) |
| field_type | string | false | The type of the CustomFieldValue |
| field_required | boolean | false | Whether the CustomFieldValue requires a value |
| field_displayed | boolean | false | Whether the CustomFieldValue is displayed by default |
| field_display_order | integer(int32) | false | The display position of the CustomFieldValue |
| value | string | false | The value of the CustomFieldValue |
| picklist_option | string | false | Picklist options if the custom field is of the type picklist |
Enumerated Values
| Property | Value |
|---|---|
| field_type | checkbox |
| field_type | contact |
| field_type | currency |
| field_type | date |
| field_type | time |
| field_type | |
| field_type | matter |
| field_type | numeric |
| field_type | picklist |
| field_type | text_area |
| field_type | text_line |
| field_type | url |
CustomFieldValue
{
"id": "string",
"etag": "string",
"field_name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"field_type": "checkbox",
"field_required": true,
"field_displayed": true,
"field_display_order": 0,
"value": "string",
"picklist_option": "string",
"custom_field": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"name": "string",
"parent_type": "Contact",
"field_type": "checkbox",
"displayed": true,
"deleted": true,
"required": true,
"display_order": "string"
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | CustomFieldValue_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » custom_field | CustomField_base | false | No description |
| » matter | Matter_base | false | No description |
| » contact | Contact_base | false | No description |
CustomField_base
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"name": "string",
"parent_type": "Contact",
"field_type": "checkbox",
"displayed": true,
"deleted": true,
"required": true,
"display_order": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the CustomField |
| etag | string | false | ETag for the CustomField |
| created_at | string(date-time) | false | The time the CustomField was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the CustomField was last updated (as a ISO-8601 timestamp) |
| name | string | false | The name of the CustomField |
| parent_type | string | false | Type of object the CustomField is for |
| field_type | string | false | Field type of the CustomField |
| displayed | boolean | false | Whether the CustomField is displayed by default |
| deleted | boolean | false | Whether the CustomField is deleted for future use |
| required | boolean | false | Whether the CustomField requires a value |
| display_order | string | false | The display position of the CustomField |
Enumerated Values
| Property | Value |
|---|---|
| parent_type | Contact |
| parent_type | Matter |
| field_type | checkbox |
| field_type | contact |
| field_type | currency |
| field_type | date |
| field_type | time |
| field_type | |
| field_type | matter |
| field_type | numeric |
| field_type | picklist |
| field_type | text_area |
| field_type | text_line |
| field_type | url |
CustomField
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"name": "string",
"parent_type": "Contact",
"field_type": "checkbox",
"displayed": true,
"deleted": true,
"required": true,
"display_order": "string",
"picklist_options": [
{
"id": 0,
"option": "string",
"deleted_at": "2018-03-22T20:30:34Z"
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | CustomField_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » picklist_options | [PicklistOption_base] | false | PicklistOption |
CustomFieldShow
{
"data": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"name": "string",
"parent_type": "Contact",
"field_type": "checkbox",
"displayed": true,
"deleted": true,
"required": true,
"display_order": "string",
"picklist_options": [
{
"id": 0,
"option": "string",
"deleted_at": "2018-03-22T20:30:34Z"
}
]
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | CustomField | true | No description |
CustomFieldList
{
"data": [
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"name": "string",
"parent_type": "Contact",
"field_type": "checkbox",
"displayed": true,
"deleted": true,
"required": true,
"display_order": "string",
"picklist_options": [
{
"id": 0,
"option": "string",
"deleted_at": "2018-03-22T20:30:34Z"
}
]
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [CustomField] | true | CustomField List Response |
PicklistOption_base
{
"id": 0,
"option": "string",
"deleted_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the PicklistOption |
| option | string | false | The value of the PicklistOption |
| deleted_at | string(date-time) | false | The time the PicklistOption was deleted (as a ISO-8601 timestamp) |
PicklistOption
{
"id": 0,
"option": "string",
"deleted_at": "2018-03-22T20:30:34Z"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | PicklistOption_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
EmailAddress_base
{
"id": 0,
"etag": "string",
"address": "string",
"name": "Work",
"default_email": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the EmailAddress |
| etag | string | false | ETag for the EmailAddress |
| address | string | false | The address of the EmailAddress |
| name | string | false | The type of EmailAddress it is |
| default_email | boolean | false | Whether it is the default for this contact |
| created_at | string(date-time) | false | The time the EmailAddress was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the EmailAddress was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| name | Work |
| name | Home |
| name | Other |
EmailAddress
{
"id": 0,
"etag": "string",
"address": "string",
"name": "Work",
"default_email": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | EmailAddress_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
InstantMessenger_base
{
"id": 0,
"etag": "string",
"address": "string",
"name": "Work",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the InstantMessenger |
| etag | string | false | ETag for the InstantMessenger |
| address | string | false | The address of the InstantMessenger |
| name | string | false | The type of InstantMessenger it is |
| created_at | string(date-time) | false | The time the InstantMessenger was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the InstantMessenger was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| name | Work |
| name | Personal |
| name | Other |
InstantMessenger
{
"id": 0,
"etag": "string",
"address": "string",
"name": "Work",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | InstantMessenger_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
PhoneNumber_base
{
"id": 0,
"etag": "string",
"number": "string",
"name": "Work",
"default_number": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the PhoneNumber |
| etag | string | false | ETag for the PhoneNumber |
| number | string | false | Contact's Phone Number |
| name | string | false | The type of PhoneNumber it is |
| default_number | boolean | false | Whether it is default for this contact |
| created_at | string(date-time) | false | The time the PhoneNumber was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the PhoneNumber was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| name | Work |
| name | Personal |
| name | Other |
PhoneNumber
{
"id": 0,
"etag": "string",
"number": "string",
"name": "Work",
"default_number": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | PhoneNumber_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
WebSite_base
{
"id": 0,
"etag": "string",
"address": "string",
"name": "Work",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the WebSite |
| etag | string | false | ETag for the WebSite |
| address | string | false | The address of the WebSite |
| name | string | false | The type of WebSite it is |
| created_at | string(date-time) | false | The time the WebSite was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the WebSite was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| name | Work |
| name | Personal |
| name | Other |
WebSite
{
"id": 0,
"etag": "string",
"address": "string",
"name": "Work",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | WebSite_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
AccountBalance_base
{
"id": 0,
"balance": 0,
"type": "string",
"name": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the AccountBalance |
| balance | number(double) | false | The current balance of the bank account available to the matter or contact |
| type | string | false | The bank account type. Either Operating or Trust |
| name | string | false | The name of the bank account |
AccountBalance
{
"id": 0,
"balance": 0,
"type": "string",
"name": "string"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | AccountBalance_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
PaymentProfile_base
{
"id": 0,
"etag": "string",
"billing_setting_id": 0,
"name": "string",
"terms": 0,
"discount_rate": 0,
"discount_period": 0,
"interest_rate": 0,
"interest_period": 0,
"interest_type": "simple"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the PaymentProfile |
| etag | string | false | ETag for the PaymentProfile |
| billing_setting_id | integer(int32) | false | The unique identifier for the *PaymentProfile |
| name | string | false | The name of the *PaymentProfile |
| terms | integer(int32) | false | The total grace period for the *PaymentProfile |
| discount_rate | number(float) | false | The early payment discount rate for the *PaymentProfile |
| discount_period | integer(int32) | false | The early payment discount period for the *PaymentProfile |
| interest_rate | number(float) | false | The interest rate for the *PaymentProfile |
| interest_period | integer(int32) | false | The interest period interval for the *PaymentProfile |
| interest_type | string | false | The type of interest to be calculated for the *PaymentProfile (Simple or Compound) |
Enumerated Values
| Property | Value |
|---|---|
| interest_type | simple |
| interest_type | compound |
PaymentProfile
{
"id": 0,
"etag": "string",
"billing_setting_id": 0,
"name": "string",
"terms": 0,
"discount_rate": 0,
"discount_period": 0,
"interest_rate": 0,
"interest_period": 0,
"interest_type": "simple"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | PaymentProfile_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
ContingencyFee_base
{
"id": 0,
"etag": "string",
"show_contingency_award": true
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the ContingencyFee |
| etag | string | false | ETag for the ContingencyFee |
| show_contingency_award | boolean | false | Whether the ContingencyFee is posted or on a bill |
ContingencyFee
{
"id": 0,
"etag": "string",
"show_contingency_award": true,
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | ContingencyFee_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » user | User_base | false | No description |
MatterCustomRate_base
{
"type": "FlatRate",
"on_invoice": true
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| type | string | false | The type of the MatterCustomRate |
| on_invoice | boolean | false | Specifies if the matters's associated activity is posted or on a bill. |
Enumerated Values
| Property | Value |
|---|---|
| type | FlatRate |
| type | HourlyRate |
| type | ContingencyFee |
MatterCustomRate
{
"type": "FlatRate",
"on_invoice": true,
"rates": [
{
"id": 0,
"rate": 0,
"award": 0,
"note": "string",
"date": "2018-03-22",
"user": {
"enabled": true,
"etag": "string",
"id": 0,
"name": "string"
},
"group": {
"id": 0,
"etag": "string",
"name": "string"
},
"activity_description": {
"id": 0,
"etag": "string",
"name": "string"
}
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | MatterCustomRate_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » rates | [PolymorphicCustomRate] | false | PolymorphicCustomRate |
PolymorphicCustomRate_base
{
"id": 0,
"rate": 0,
"award": 0,
"note": "string",
"date": "2018-03-22"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | The unique identifier for the custom rate |
| rate | number(double) | false | If custom_rate.type is HourlyRate, it is the dollar amount of the custom rate of the User or Group for the Matter. If custom_rate.type is FlatRate, it is the dollar amount of the custom flat rate for the Matter. If custom_rate.type is ContingencyFee, it is the percentage of the contingency fee awarded to the user for the Matter. The value may also be expressed as string that represents a rational number such as 1/3. If the user does not have sufficient rate visibility, the rates are hidden. |
| award | number(double) | false | The value of the ContingencyFee award. |
| note | string | false | Details about the ContingencyFee award. |
| date | string(date) | false | The date of the ContingencyFee award. |
PolymorphicCustomRate
{
"id": 0,
"rate": 0,
"award": 0,
"note": "string",
"date": "2018-03-22",
"user": {
"enabled": true,
"etag": "string",
"id": 0,
"name": "string"
},
"group": {
"id": 0,
"etag": "string",
"name": "string"
},
"activity_description": {
"id": 0,
"etag": "string",
"name": "string"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | PolymorphicCustomRate_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » user | PolymorphicCustomRate_User_base | false | No description |
| » group | PolymorphicCustomRate_Group_base | false | No description |
| » activity_description | PolymorphicCustomRate_ActivityDescription_base | false | No description |
PolymorphicCustomRate_User_base
{
"enabled": true,
"etag": "string",
"id": 0,
"name": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| enabled | boolean | false | Whether the User is allowed to log in |
| etag | string | false | ETag for the User |
| id | integer(int32) | false | Unique identifier for the User |
| name | string | false | The full name of the User |
PolymorphicCustomRate_Group_base
{
"id": 0,
"etag": "string",
"name": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Group |
| etag | string | false | ETag for the Group |
| name | string | false | The name of the Group |
PolymorphicCustomRate_ActivityDescription_base
{
"id": 0,
"etag": "string",
"name": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the ActivityDescription |
| etag | string | false | ETag for the ActivityDescription |
| name | string | false | The name of the ActivityDescription |
EvergreenRetainer_base
{
"id": 0,
"etag": "string",
"minimum_threshold": 0
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the EvergreenRetainer |
| etag | string | false | ETag for the EvergreenRetainer |
| minimum_threshold | number(double) | false | Minimum threshold of the EvergreenRetainer% |
EvergreenRetainer
{
"id": 0,
"etag": "string",
"minimum_threshold": 0,
"recipients": [
{
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | EvergreenRetainer_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » recipients | [User_base] | false | User |
MatterBudget_base
{
"id": 0,
"etag": "string",
"budget": 0,
"include_expenses": true,
"notification_threshold": 0,
"notify_users": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the MatterBudget |
| etag | string | false | ETag for the MatterBudget |
| budget | number(double) | false | The amount allocated for the matter. |
| include_expenses | boolean | false | Whether the budget includes expenses. |
| notification_threshold | integer(int32) | false | Percentage of the budget when it starts notifying users. |
| notify_users | boolean | false | Whether to notify users when the matter reaches the notification threshold. |
| created_at | string(date-time) | false | The time the MatterBudget was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the MatterBudget was last updated (as a ISO-8601 timestamp) |
MatterBudget
{
"id": 0,
"etag": "string",
"budget": 0,
"include_expenses": true,
"notification_threshold": 0,
"notify_users": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"users": [
{
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | MatterBudget_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » users | [User_base] | false | User |
PracticeArea_base
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"name": "string",
"code": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the PracticeArea |
| etag | string | false | ETag for the PracticeArea |
| created_at | string(date-time) | false | The time the PracticeArea was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the PracticeArea was last updated (as a ISO-8601 timestamp) |
| name | string | false | The name of the PracticeArea |
| code | string | false | The code of the PracticeArea |
PracticeArea
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"name": "string",
"code": "string"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | PracticeArea_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
PracticeAreaShow
{
"data": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"name": "string",
"code": "string"
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | PracticeArea | true | No description |
PracticeAreaList
{
"data": [
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"name": "string",
"code": "string"
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [PracticeArea] | true | PracticeArea List Response |
Task_base
{
"id": 0,
"etag": "string",
"name": "string",
"status": "pending",
"description": "string",
"priority": "High",
"due_at": "2018-03-22",
"completed_at": "2018-03-22T20:30:34Z",
"notify_completion": true,
"statute_of_limitations": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Task |
| etag | string | false | ETag for the Task |
| name | string | false | The name of the Task |
| status | string | false | Status of the Task. (Note that users without advanced tasks can only have either complete or pending) |
| description | string | false | A detailed description of the Task |
| priority | string | false | The priority of the Task |
| due_at | string(date) | false | The date the Task is due (as a ISO-8601 date) |
| completed_at | string(date-time) | false | The time the Task was completed (as a ISO-8601 timestamp) |
| notify_completion | boolean | false | Whether to notify the assigner of the task's completion |
| statute_of_limitations | boolean | false | Whether the task is a statute of limitations |
| created_at | string(date-time) | false | The time the Task was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the Task was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| status | pending |
| status | in_progress |
| status | in_review |
| status | complete |
| priority | High |
| priority | Normal |
| priority | Low |
Task
{
"id": 0,
"etag": "string",
"name": "string",
"status": "pending",
"description": "string",
"priority": "High",
"due_at": "2018-03-22",
"completed_at": "2018-03-22T20:30:34Z",
"notify_completion": true,
"statute_of_limitations": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"task_type": {
"id": 0,
"etag": "string",
"name": "string",
"deleted_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"assigner": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"assignee": {
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
},
"reminders": [
{
"id": 0,
"etag": "string",
"duration": 0,
"next_delivery_at": "2018-03-22T20:30:34Z",
"state": "initializing",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Task_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » task_type | TaskType_base | false | No description |
| » assigner | User_base | false | No description |
| » matter | Matter_base | false | No description |
| » assignee | Participant_base | false | No description |
| » reminders | [Reminder_base] | false | Reminder |
TaskShow
{
"data": {
"id": 0,
"etag": "string",
"name": "string",
"status": "pending",
"description": "string",
"priority": "High",
"due_at": "2018-03-22",
"completed_at": "2018-03-22T20:30:34Z",
"notify_completion": true,
"statute_of_limitations": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"task_type": {
"id": 0,
"etag": "string",
"name": "string",
"deleted_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"assigner": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"assignee": {
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
},
"reminders": [
{
"id": 0,
"etag": "string",
"duration": 0,
"next_delivery_at": "2018-03-22T20:30:34Z",
"state": "initializing",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
]
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | Task | true | No description |
TaskList
{
"data": [
{
"id": 0,
"etag": "string",
"name": "string",
"status": "pending",
"description": "string",
"priority": "High",
"due_at": "2018-03-22",
"completed_at": "2018-03-22T20:30:34Z",
"notify_completion": true,
"statute_of_limitations": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"task_type": {
"id": 0,
"etag": "string",
"name": "string",
"deleted_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"assigner": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"assignee": {
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
},
"reminders": [
{
"id": 0,
"etag": "string",
"duration": 0,
"next_delivery_at": "2018-03-22T20:30:34Z",
"state": "initializing",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
]
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [Task] | true | Task List Response |
Note_base
{
"id": 0,
"etag": "string",
"type": "MatterNote",
"subject": "string",
"detail": "string",
"date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Note |
| etag | string | false | ETag for the Note |
| type | string | false | The type of the Note |
| subject | string | false | The subject of the Note |
| detail | string | false | The body of the Note |
| date | string(date) | false | The date the Note is for (as a ISO-8601 date) |
| created_at | string(date-time) | false | The time the Note was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the Note was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| type | MatterNote |
| type | ContactNote |
Note
{
"id": 0,
"etag": "string",
"type": "MatterNote",
"subject": "string",
"detail": "string",
"date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Note_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » matter | Matter_base | false | No description |
| » contact | Contact_base | false | No description |
NoteShow
{
"data": {
"id": 0,
"etag": "string",
"type": "MatterNote",
"subject": "string",
"detail": "string",
"date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | Note | true | No description |
NoteList
{
"data": [
{
"id": 0,
"etag": "string",
"type": "MatterNote",
"subject": "string",
"detail": "string",
"date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [Note] | true | Note List Response |
TaskType_base
{
"id": 0,
"etag": "string",
"name": "string",
"deleted_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the TaskType |
| etag | string | false | ETag for the TaskType |
| name | string | false | The name of the TaskType |
| deleted_at | string(date-time) | false | The time the TaskType was deleted (as a ISO-8601 timestamp) |
| created_at | string(date-time) | false | The time the TaskType was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the TaskType was last updated (as a ISO-8601 timestamp) |
TaskType
{
"id": 0,
"etag": "string",
"name": "string",
"deleted_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | TaskType_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
TaskTypeShow
{
"data": {
"id": 0,
"etag": "string",
"name": "string",
"deleted_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | TaskType | true | No description |
TaskTypeList
{
"data": [
{
"id": 0,
"etag": "string",
"name": "string",
"deleted_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [TaskType] | true | TaskType List Response |
Participant_base
{
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Participant |
| type | string | false | The type of the Participant |
| identifier | string | false | A string to identify the Participant |
| secondary_identifier | string | false | A secondary string to identify the Participant |
| enabled | boolean | false | The enabled state of the Participant record. Always 'null' if Participant type is Contact |
| name | string | false | The name of the Participant record |
Enumerated Values
| Property | Value |
|---|---|
| type | Contact |
| type | User |
Participant
{
"id": 0,
"type": "Contact",
"identifier": "string",
"secondary_identifier": "string",
"enabled": true,
"name": "string"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Participant_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
Reminder_base
{
"id": 0,
"etag": "string",
"duration": 0,
"next_delivery_at": "2018-03-22T20:30:34Z",
"state": "initializing",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Reminder |
| etag | string | false | ETag for the Reminder |
| duration | integer(int32) | false | Time in minutes to remind user before the subject |
| next_delivery_at | string(date-time) | false | The time the Reminder will be delivered (as a ISO-8601 timestamp) |
| state | string | false | The current state of the Reminder |
| created_at | string(date-time) | false | The time the Reminder was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the Reminder was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| state | initializing |
| state | scheduling |
| state | rescheduling |
| state | scheduled |
| state | attempting_delivery |
| state | delivery_failed |
| state | delivered |
| state | delivery_skipped |
| state | invalid_user |
Reminder
{
"id": 0,
"etag": "string",
"duration": 0,
"next_delivery_at": "2018-03-22T20:30:34Z",
"state": "initializing",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"notification_method": {
"id": 0,
"etag": "string",
"type": "Email",
"email_address": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"subject": {
"id": 0,
"type": "Task",
"identifier": "string",
"secondary_identifier": "string"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Reminder_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » notification_method | NotificationMethod_base | false | No description |
| » subject | PolymorphicObject_base | false | No description |
ReminderShow
{
"data": {
"id": 0,
"etag": "string",
"duration": 0,
"next_delivery_at": "2018-03-22T20:30:34Z",
"state": "initializing",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"notification_method": {
"id": 0,
"etag": "string",
"type": "Email",
"email_address": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"subject": {
"id": 0,
"type": "Task",
"identifier": "string",
"secondary_identifier": "string"
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | Reminder | true | No description |
ReminderList
{
"data": [
{
"id": 0,
"etag": "string",
"duration": 0,
"next_delivery_at": "2018-03-22T20:30:34Z",
"state": "initializing",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"notification_method": {
"id": 0,
"etag": "string",
"type": "Email",
"email_address": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"subject": {
"id": 0,
"type": "Task",
"identifier": "string",
"secondary_identifier": "string"
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [Reminder] | true | Reminder List Response |
PolymorphicObject_base
{
"id": 0,
"type": "Task",
"identifier": "string",
"secondary_identifier": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the PolymorphicObject |
| type | string | false | The type of the PolymorphicObject |
| identifier | string | false | A string to identify the PolymorphicObject |
| secondary_identifier | string | false | A secondary string to identify the PolymorphicObject |
Enumerated Values
| Property | Value |
|---|---|
| type | Task |
| type | CalendarEntry |
| type | MatterNote |
| type | ContactNote |
| type | Matter |
| type | Contact |
| type | User |
| type | CreditMemo |
| type | Payment |
PolymorphicObject
{
"id": 0,
"type": "Task",
"identifier": "string",
"secondary_identifier": "string"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | PolymorphicObject_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
ImportDetail_base
{
"id": 0,
"status": "not_started",
"source": "custom",
"importer_type": "contact",
"file_type": "csv",
"has_mappings": true,
"updated_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"byte_offset": 0,
"file_size": 0,
"error_file_available": true,
"record_count": 0,
"error_count": 0,
"fatal_error_message": "string",
"undone": true,
"stopped": true
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the ImportDetail |
| status | string | false | The current status of the import |
| source | string | false | The source of the import |
| importer_type | string | false | The importer type of the import |
| file_type | string | false | The file type of the import |
| has_mappings | boolean | false | Whether the import has mappings have been defined |
| updated_at | string(date-time) | false | The time the ImportDetail was last updated (as a ISO-8601 timestamp) |
| created_at | string(date-time) | false | The time the ImportDetail was created (as a ISO-8601 timestamp) |
| byte_offset | integer(int32) | false | The number of bytes from the import file that have been processed or are being processed |
| file_size | integer(int32) | false | The size of the import file in bytes |
| error_file_available | boolean | false | Whether an error file is available for download |
| record_count | integer(int32) | false | The number of records successfully created |
| error_count | integer(int32) | false | The number of errors generated |
| fatal_error_message | string | false | The fatal error message if it exists |
| undone | boolean | false | Whether this import has been undone |
| stopped | boolean | false | Whether this import has been stopped |
Enumerated Values
| Property | Value |
|---|---|
| status | not_started |
| status | queued |
| status | in_progress |
| status | failed |
| status | completed |
| source | custom |
| importer_type | contact |
| importer_type | note |
| importer_type | matter |
| importer_type | activity |
| importer_type | task |
| importer_type | relationship |
| importer_type | calendar_entry |
| file_type | csv |
| file_type | ical |
| file_type | vcard |
ImportDetail
{
"id": 0,
"status": "not_started",
"source": "custom",
"importer_type": "contact",
"file_type": "csv",
"has_mappings": true,
"updated_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"byte_offset": 0,
"file_size": 0,
"error_file_available": true,
"record_count": 0,
"error_count": 0,
"fatal_error_message": "string",
"undone": true,
"stopped": true,
"import_mappings": [
{
"id": 0,
"field_type": "string",
"to": "string",
"from": "string",
"default_value": "string",
"format": "string"
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | ImportDetail_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » import_mappings | [ImportMapping_base] | false | ImportMapping |
ImportDetailShow
{
"data": {
"id": 0,
"status": "not_started",
"source": "custom",
"importer_type": "contact",
"file_type": "csv",
"has_mappings": true,
"updated_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"byte_offset": 0,
"file_size": 0,
"error_file_available": true,
"record_count": 0,
"error_count": 0,
"fatal_error_message": "string",
"undone": true,
"stopped": true,
"import_mappings": [
{
"id": 0,
"field_type": "string",
"to": "string",
"from": "string",
"default_value": "string",
"format": "string"
}
]
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | ImportDetail | true | No description |
ImportDetailList
{
"data": [
{
"id": 0,
"status": "not_started",
"source": "custom",
"importer_type": "contact",
"file_type": "csv",
"has_mappings": true,
"updated_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"byte_offset": 0,
"file_size": 0,
"error_file_available": true,
"record_count": 0,
"error_count": 0,
"fatal_error_message": "string",
"undone": true,
"stopped": true,
"import_mappings": [
{
"id": 0,
"field_type": "string",
"to": "string",
"from": "string",
"default_value": "string",
"format": "string"
}
]
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [ImportDetail] | true | ImportDetail List Response |
ImportMapping_base
{
"id": 0,
"field_type": "string",
"to": "string",
"from": "string",
"default_value": "string",
"format": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the ImportMapping |
| field_type | string | false | The type of the field |
| to | string | false | The destination field |
| from | string | false | The source field |
| default_value | string | false | The default value for the field |
| format | string | false | The format of the field |
Enumerated Values
| Property | Value |
|---|---|
| field_type | string |
| field_type | boolean |
| field_type | date |
| field_type | time |
ImportMapping
{
"id": 0,
"field_type": "string",
"to": "string",
"from": "string",
"default_value": "string",
"format": "string"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | ImportMapping_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
CustomFieldSetAssociation_base
{
"id": 0,
"etag": "string",
"display_order": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the CustomFieldSetAssociation |
| etag | string | false | ETag for the CustomFieldSetAssociation |
| display_order | integer(int32) | false | The display position of the CustomFieldSetAssociation |
| created_at | string(date-time) | false | The time the CustomFieldSetAssociation was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the CustomFieldSetAssociation was last updated (as a ISO-8601 timestamp) |
CustomFieldSetAssociation
{
"id": 0,
"etag": "string",
"display_order": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"custom_field_set": {
"id": 0,
"etag": "string",
"name": "string",
"parent_type": "Contact",
"displayed": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"parent": {
"id": 0,
"type": "Task",
"identifier": "string",
"secondary_identifier": "string"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | CustomFieldSetAssociation_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » custom_field_set | CustomFieldSet_base | false | No description |
| » parent | PolymorphicObject_base | false | No description |
CustomFieldSet_base
{
"id": 0,
"etag": "string",
"name": "string",
"parent_type": "Contact",
"displayed": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the CustomFieldSet |
| etag | string | false | ETag for the CustomFieldSet |
| name | string | false | The name of the custom field set. |
| parent_type | string | false | Type of object the CustomFieldSet is for. |
| displayed | boolean | false | Whether or not the CustomFieldSet should be displayed by default. |
| created_at | string(date-time) | false | The time the CustomFieldSet was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the CustomFieldSet was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| parent_type | Contact |
| parent_type | Matter |
CustomFieldSet
{
"id": 0,
"etag": "string",
"name": "string",
"parent_type": "Contact",
"displayed": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"custom_fields": [
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"name": "string",
"parent_type": "Contact",
"field_type": "checkbox",
"displayed": true,
"deleted": true,
"required": true,
"display_order": "string"
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | CustomFieldSet_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » custom_fields | [CustomField_base] | false | CustomField |
CustomFieldSetList
{
"data": [
{
"id": 0,
"etag": "string",
"name": "string",
"parent_type": "Contact",
"displayed": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"custom_fields": [
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"name": "string",
"parent_type": "Contact",
"field_type": "checkbox",
"displayed": true,
"deleted": true,
"required": true,
"display_order": "string"
}
]
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [CustomFieldSet] | true | CustomFieldSet List Response |
Relationship_base
{
"id": 0,
"etag": "string",
"description": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Relationship |
| etag | string | false | ETag for the Relationship |
| description | string | false | A detailed description of the Relationship |
| created_at | string(date-time) | false | The time the Relationship was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the Relationship was last updated (as a ISO-8601 timestamp) |
Relationship
{
"id": 0,
"etag": "string",
"description": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Relationship_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » matter | Matter_base | false | No description |
| » contact | Contact_base | false | No description |
RelationshipShow
{
"data": {
"id": 0,
"etag": "string",
"description": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | Relationship | true | No description |
RelationshipList
{
"data": [
{
"id": 0,
"etag": "string",
"description": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [Relationship] | true | Relationship List Response |
TaskTemplateListInstace_base
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the TaskTemplateListInstace |
| etag | string | false | ETag for the TaskTemplateListInstace |
| created_at | string(date-time) | false | The time the TaskTemplateListInstace was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the TaskTemplateListInstace was last updated (as a ISO-8601 timestamp) |
TaskTemplateListInstace
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"task_template_list": {
"id": 0,
"etag": "string",
"name": "string",
"description": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | TaskTemplateListInstace_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » matter | Matter_base | false | No description |
| » task_template_list | TaskTemplateList_base | false | No description |
TaskTemplateList_base
{
"id": 0,
"etag": "string",
"name": "string",
"description": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the TaskTemplateList |
| etag | string | false | ETag for the TaskTemplateList |
| name | string | false | The name of the TaskTemplateList |
| description | string | false | A detailed description of the TaskTemplateList |
| created_at | string(date-time) | false | The time the TaskTemplateList was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the TaskTemplateList was last updated (as a ISO-8601 timestamp) |
TaskTemplateListShow
{
"data": {
"id": 0,
"etag": "string",
"name": "string",
"description": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"practice_area": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"name": "string",
"code": "string"
},
"creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | TaskTemplateList | true | No description |
TaskTemplateListList
{
"data": [
{
"id": 0,
"etag": "string",
"name": "string",
"description": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"practice_area": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"name": "string",
"code": "string"
},
"creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [TaskTemplateList] | true | TaskTemplateList List Response |
DocumentCategory_base
{
"id": 0,
"etag": "string",
"name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the DocumentCategory |
| etag | string | false | ETag for the DocumentCategory |
| name | string | false | The name of the DocumentCategory |
| created_at | string(date-time) | false | The time the DocumentCategory was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the DocumentCategory was last updated (as a ISO-8601 timestamp) |
DocumentCategory
{
"id": 0,
"etag": "string",
"name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | DocumentCategory_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
DocumentCategoryShow
{
"data": {
"id": 0,
"etag": "string",
"name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | DocumentCategory | true | No description |
DocumentCategoryList
{
"data": [
{
"id": 0,
"etag": "string",
"name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [DocumentCategory] | true | DocumentCategory List Response |
DocumentVersion_base
{
"id": 0,
"etag": "string",
"uuid": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"filename": "string",
"size": 0,
"version_number": 0,
"content_type": "string",
"received_at": "2018-03-22T20:30:34Z",
"put_url": "string",
"fully_uploaded": true
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the DocumentVersion |
| etag | string | false | ETag for the DocumentVersion |
| uuid | string | false | UUID associated with the DocumentVersion. UUID is required to mark a document fully uploaded. |
| created_at | string(date-time) | false | The time the DocumentVersion was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the DocumentVersion was last updated (as a ISO-8601 timestamp) |
| filename | string | false | The uploaded file name of the DocumentVersion. |
| size | integer(int32) | false | The size of the the DocumentVersion in bytes. |
| version_number | integer(int32) | false | The ordered number of when this DocumentVersion was uploaded. |
| content_type | string | false | A standard MIME type describing the format of the object data. |
| received_at | string(date-time) | false | The time the DocumentVersion was received (as an ISO-8601 timestamp) |
| put_url | string | false | A signed URL for uploading the file in a single operation. It expires in 10 minutes. If the document is fully uploaded, the field is empty. |
| fully_uploaded | boolean | false | True if the DocumentVersion is uploaded. False if the DocumentVersion is being uploaded. |
DocumentVersion
{
"id": 0,
"etag": "string",
"uuid": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"filename": "string",
"size": 0,
"version_number": 0,
"content_type": "string",
"received_at": "2018-03-22T20:30:34Z",
"put_url": "string",
"fully_uploaded": true,
"creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"put_headers": [
{
"name": "string",
"value": "string"
}
],
"multiparts": [
{
"part_number": 0,
"put_url": "string",
"put_headers": [
{
"name": "string",
"value": "string"
}
]
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | DocumentVersion_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » creator | User_base | false | No description |
| » put_headers | [MultipartHeader_base] | false | MultipartHeader |
| » multiparts | [Multipart] | false | Multipart |
MultipartHeader_base
{
"name": "string",
"value": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | false | Required HTTP header field name for uploading. |
| value | string | false | Required HTTP header field value for uploading. |
MultipartHeader
{
"name": "string",
"value": "string"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | MultipartHeader_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
Multipart_base
{
"part_number": 0,
"put_url": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| part_number | integer(int32) | false | Unique identifier of a part which defines its position within the document being uploaded. |
| put_url | string | false | A signed URL for uploading the file part. It expires in 10 minutes. |
Multipart
{
"part_number": 0,
"put_url": "string",
"put_headers": [
{
"name": "string",
"value": "string"
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Multipart_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » put_headers | [MultipartHeader_base] | false | MultipartHeader |
DocumentAutomation_base
{
"id": 0,
"etag": "string",
"state": null,
"export_formats": "pdf",
"filename": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the DocumentAutomation |
| etag | string | false | ETag for the DocumentAutomation |
| state | string | false | A text description of what the automation is currently doing |
| export_formats | string | false | An array of what formats were requested |
| filename | string | false | The name of the file being generated. |
| created_at | string(date-time) | false | The time the DocumentAutomation was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the DocumentAutomation was last updated (as a ISO-8601 timestamp) |
Enumerated Values
| Property | Value |
|---|---|
| state | null |
| export_formats | |
| export_formats | original |
DocumentAutomation
{
"id": 0,
"etag": "string",
"state": null,
"export_formats": "pdf",
"filename": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"document_template": {
"id": 0,
"etag": "string",
"size": 0,
"content_type": "string",
"filename": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"documents": [
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Document",
"locked": true,
"name": "string",
"received_at": "2018-03-22T20:30:34Z",
"filename": "string"
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | DocumentAutomation_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » matter | Matter_base | false | No description |
| » document_template | DocumentTemplate_base | false | No description |
| » documents | [Document_base] | false | Document |
DocumentAutomationShow
{
"data": {
"id": 0,
"etag": "string",
"state": null,
"export_formats": "pdf",
"filename": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"document_template": {
"id": 0,
"etag": "string",
"size": 0,
"content_type": "string",
"filename": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"documents": [
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Document",
"locked": true,
"name": "string",
"received_at": "2018-03-22T20:30:34Z",
"filename": "string"
}
]
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | DocumentAutomation | true | No description |
DocumentAutomationList
{
"data": [
{
"id": 0,
"etag": "string",
"state": null,
"export_formats": "pdf",
"filename": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"document_template": {
"id": 0,
"etag": "string",
"size": 0,
"content_type": "string",
"filename": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"documents": [
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Document",
"locked": true,
"name": "string",
"received_at": "2018-03-22T20:30:34Z",
"filename": "string"
}
]
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [DocumentAutomation] | true | DocumentAutomation List Response |
DocumentTemplate_base
{
"id": 0,
"etag": "string",
"size": 0,
"content_type": "string",
"filename": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the DocumentTemplate |
| etag | string | false | ETag for the DocumentTemplate |
| size | integer(int32) | false | The size in bytes of the template |
| content_type | string | false | A standard MIME type describing the format of the object data. |
| filename | string | false | The name of the original file that was uploaded |
| created_at | string(date-time) | false | The time the DocumentTemplate was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the DocumentTemplate was last updated (as a ISO-8601 timestamp) |
DocumentTemplate
{
"id": 0,
"etag": "string",
"size": 0,
"content_type": "string",
"filename": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"document_category": {
"id": 0,
"etag": "string",
"name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"last_modified_by": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | DocumentTemplate_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » document_category | DocumentCategory_base | false | No description |
| » last_modified_by | User_base | false | No description |
DocumentTemplateShow
{
"data": {
"id": 0,
"etag": "string",
"size": 0,
"content_type": "string",
"filename": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"document_category": {
"id": 0,
"etag": "string",
"name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"last_modified_by": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | DocumentTemplate | true | No description |
DocumentTemplateList
{
"data": [
{
"id": 0,
"etag": "string",
"size": 0,
"content_type": "string",
"filename": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"document_category": {
"id": 0,
"etag": "string",
"name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"last_modified_by": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [DocumentTemplate] | true | DocumentTemplate List Response |
Document_base
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Document",
"locked": true,
"name": "string",
"received_at": "2018-03-22T20:30:34Z",
"filename": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Document |
| etag | string | false | ETag for the Document |
| created_at | string(date-time) | false | The time the Document was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the Document was last updated (as a ISO-8601 timestamp) |
| deleted_at | string(date-time) | false | The time the Document was deleted (as a ISO-8601 timestamp) |
| type | string | false | The type of the Document |
| locked | boolean | false | Whether or not the Document is locked. Locked Document cannot be modified |
| name | string | false | The name of the Document |
| received_at | string(date-time) | false | The time the last document version was received (as an ISO-8601 timestamp) |
| filename | string | false | The uploaded file name of the latest document version. |
Enumerated Values
| Property | Value |
|---|---|
| type | Document |
Document
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Document",
"locked": true,
"name": "string",
"received_at": "2018-03-22T20:30:34Z",
"filename": "string",
"parent": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Folder",
"locked": true,
"name": "string",
"root": true
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"document_category": {
"id": 0,
"etag": "string",
"name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"latest_document_version": {
"id": 0,
"etag": "string",
"uuid": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"filename": "string",
"size": 0,
"version_number": 0,
"content_type": "string",
"received_at": "2018-03-22T20:30:34Z",
"put_url": "string",
"fully_uploaded": true,
"creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"put_headers": [
{
"name": "string",
"value": "string"
}
],
"multiparts": [
{
"part_number": 0,
"put_url": "string",
"put_headers": [
{
"name": "string",
"value": "string"
}
]
}
]
},
"document_versions": [
{
"id": 0,
"etag": "string",
"uuid": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"filename": "string",
"size": 0,
"version_number": 0,
"content_type": "string",
"received_at": "2018-03-22T20:30:34Z",
"put_url": "string",
"fully_uploaded": true
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Document_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » parent | Folder_base | false | No description |
| » matter | Matter_base | false | No description |
| » contact | Contact_base | false | No description |
| » document_category | DocumentCategory_base | false | No description |
| » creator | User_base | false | No description |
| » latest_document_version | DocumentVersion | false | No description |
| » document_versions | [DocumentVersion_base] | false | DocumentVersion |
DocumentShow
{
"data": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Document",
"locked": true,
"name": "string",
"received_at": "2018-03-22T20:30:34Z",
"filename": "string",
"parent": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Folder",
"locked": true,
"name": "string",
"root": true
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"document_category": {
"id": 0,
"etag": "string",
"name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"latest_document_version": {
"id": 0,
"etag": "string",
"uuid": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"filename": "string",
"size": 0,
"version_number": 0,
"content_type": "string",
"received_at": "2018-03-22T20:30:34Z",
"put_url": "string",
"fully_uploaded": true,
"creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"put_headers": [
{
"name": "string",
"value": "string"
}
],
"multiparts": [
{
"part_number": 0,
"put_url": "string",
"put_headers": [
{
"name": "string",
"value": "string"
}
]
}
]
},
"document_versions": [
{
"id": 0,
"etag": "string",
"uuid": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"filename": "string",
"size": 0,
"version_number": 0,
"content_type": "string",
"received_at": "2018-03-22T20:30:34Z",
"put_url": "string",
"fully_uploaded": true
}
]
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | Document | true | No description |
DocumentList
{
"data": [
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Document",
"locked": true,
"name": "string",
"received_at": "2018-03-22T20:30:34Z",
"filename": "string",
"parent": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Folder",
"locked": true,
"name": "string",
"root": true
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"document_category": {
"id": 0,
"etag": "string",
"name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"latest_document_version": {
"id": 0,
"etag": "string",
"uuid": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"filename": "string",
"size": 0,
"version_number": 0,
"content_type": "string",
"received_at": "2018-03-22T20:30:34Z",
"put_url": "string",
"fully_uploaded": true,
"creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"put_headers": [
{
"name": "string",
"value": "string"
}
],
"multiparts": [
{
"part_number": 0,
"put_url": "string",
"put_headers": [
{
"name": "string",
"value": "string"
}
]
}
]
},
"document_versions": [
{
"id": 0,
"etag": "string",
"uuid": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"filename": "string",
"size": 0,
"version_number": 0,
"content_type": "string",
"received_at": "2018-03-22T20:30:34Z",
"put_url": "string",
"fully_uploaded": true
}
]
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [Document] | true | Document List Response |
DocumentArchive_base
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"size": 0,
"progress": 0,
"state": "not_started",
"message": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the DocumentArchive |
| etag | string | false | ETag for the DocumentArchive |
| created_at | string(date-time) | false | The time the DocumentArchive was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the DocumentArchive was last updated (as a ISO-8601 timestamp) |
| size | integer(int32) | false | The size of the DocumentArchive in bytes. |
| progress | number(double) | false | The percent completion of the DocumentArchive. |
| state | string | false | The current state of the DocumentArchive. |
| message | string | false | A message to indicate why the DocumentArchive didn't complete. |
Enumerated Values
| Property | Value |
|---|---|
| state | not_started |
| state | queued |
| state | in_progress |
| state | completed |
| state | failed |
DocumentArchive
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"size": 0,
"progress": 0,
"state": "not_started",
"message": "string"
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | DocumentArchive_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
DocumentArchiveShow
{
"data": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"size": 0,
"progress": 0,
"state": "not_started",
"message": "string"
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | DocumentArchive | true | No description |
Item_base
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Document",
"locked": true,
"name": "string"
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Item |
| etag | string | false | ETag for the Item |
| created_at | string(date-time) | false | The time the Item was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the Item was last updated (as a ISO-8601 timestamp) |
| deleted_at | string(date-time) | false | The time the Item was deleted (as a ISO-8601 timestamp) |
| type | string | false | The type of the Item |
| locked | boolean | false | Whether or not the Item is locked. Locked Item cannot be modified |
| name | string | false | The name of the Item |
Enumerated Values
| Property | Value |
|---|---|
| type | Document |
| type | Folder |
Item
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Document",
"locked": true,
"name": "string",
"parent": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Folder",
"locked": true,
"name": "string",
"root": true
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"document_category": {
"id": 0,
"etag": "string",
"name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"latest_document_version": {
"id": 0,
"etag": "string",
"uuid": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"filename": "string",
"size": 0,
"version_number": 0,
"content_type": "string",
"received_at": "2018-03-22T20:30:34Z",
"put_url": "string",
"fully_uploaded": true
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Item_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » parent | Folder_base | false | No description |
| » matter | Matter_base | false | No description |
| » contact | Contact_base | false | No description |
| » document_category | DocumentCategory_base | false | No description |
| » creator | User_base | false | No description |
| » latest_document_version | DocumentVersion_base | false | No description |
ItemList
{
"data": [
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Document",
"locked": true,
"name": "string",
"parent": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Folder",
"locked": true,
"name": "string",
"root": true
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"document_category": {
"id": 0,
"etag": "string",
"name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"latest_document_version": {
"id": 0,
"etag": "string",
"uuid": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"filename": "string",
"size": 0,
"version_number": 0,
"content_type": "string",
"received_at": "2018-03-22T20:30:34Z",
"put_url": "string",
"fully_uploaded": true
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [Item] | true | Item List Response |
Folder_base
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Folder",
"locked": true,
"name": "string",
"root": true
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Folder |
| etag | string | false | ETag for the Folder |
| created_at | string(date-time) | false | The time the Folder was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the Folder was last updated (as a ISO-8601 timestamp) |
| deleted_at | string(date-time) | false | The time the Folder was deleted (as a ISO-8601 timestamp) |
| type | string | false | The type of the Folder |
| locked | boolean | false | Whether or not the Folder is locked. Locked Folder cannot be modified |
| name | string | false | The name of the Folder |
| root | boolean | false | Whether or not the Folder is the root folder. There is only one root folder per account |
Enumerated Values
| Property | Value |
|---|---|
| type | Folder |
Folder
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Folder",
"locked": true,
"name": "string",
"root": true,
"parent": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Folder",
"locked": true,
"name": "string",
"root": true
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"document_category": {
"id": 0,
"etag": "string",
"name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"latest_document_version": {
"id": 0,
"etag": "string",
"uuid": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"filename": "string",
"size": 0,
"version_number": 0,
"content_type": "string",
"received_at": "2018-03-22T20:30:34Z",
"put_url": "string",
"fully_uploaded": true
}
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Folder_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » parent | Folder_base | false | No description |
| » matter | Matter_base | false | No description |
| » contact | Contact_base | false | No description |
| » document_category | DocumentCategory_base | false | No description |
| » creator | User_base | false | No description |
| » latest_document_version | DocumentVersion_base | false | No description |
FolderShow
{
"data": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Folder",
"locked": true,
"name": "string",
"root": true,
"parent": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Folder",
"locked": true,
"name": "string",
"root": true
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"document_category": {
"id": 0,
"etag": "string",
"name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"latest_document_version": {
"id": 0,
"etag": "string",
"uuid": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"filename": "string",
"size": 0,
"version_number": 0,
"content_type": "string",
"received_at": "2018-03-22T20:30:34Z",
"put_url": "string",
"fully_uploaded": true
}
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | Folder | true | No description |
FolderList
{
"data": [
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Folder",
"locked": true,
"name": "string",
"root": true,
"parent": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Folder",
"locked": true,
"name": "string",
"root": true
},
"matter": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
},
"contact": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"document_category": {
"id": 0,
"etag": "string",
"name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"creator": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"latest_document_version": {
"id": 0,
"etag": "string",
"uuid": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"filename": "string",
"size": 0,
"version_number": 0,
"content_type": "string",
"received_at": "2018-03-22T20:30:34Z",
"put_url": "string",
"fully_uploaded": true
}
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [Folder] | true | Folder List Response |
Matter_base
{
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer(int32) | false | Unique identifier for the Matter |
| etag | string | false | ETag for the Matter |
| number | integer(int32) | false | The number given to the Matter within an account |
| display_number | string | false | The reference and label of the Matter. Depending on the account's manual_matter_numbering setting, this is either read only (generated) or customizable. |
| custom_number | string | false | User defined custom number of the Matter |
| description | string | false | The detailed description of the Matter |
| status | string | false | The current status of the Matter |
| location | string | false | The location of the Matter |
| client_reference | string | false | Client Reference string for external uses |
| billable | boolean | false | Whether this matter is billable |
| maildrop_address | string | false | A unique Maildrop email address for the matter |
| billing_method | string | false | Billing method of this matter |
| open_date | string(date) | false | The date the matter was set to open (as a ISO-8601 date) |
| close_date | string(date) | false | The date the matter was set to closed (as a ISO-8601 date) |
| pending_date | string(date) | false | The date the matter was set to pending (as a ISO-8601 date) |
| created_at | string(date-time) | false | The time the Matter was created (as a ISO-8601 timestamp) |
| updated_at | string(date-time) | false | The time the Matter was last updated (as a ISO-8601 timestamp) |
| shared | boolean | false | Whether the matter is currently shared with Clio Connect |
Enumerated Values
| Property | Value |
|---|---|
| status | Pending |
| status | Open |
| status | Closed |
| billing_method | flat |
| billing_method | contingency |
| billing_method | hourly |
Matter
{
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true,
"client": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"contingency_fee": {
"id": 0,
"etag": "string",
"show_contingency_award": true
},
"custom_rate": {
"type": "FlatRate",
"on_invoice": true,
"rates": [
{
"id": 0,
"rate": 0,
"award": 0,
"note": "string",
"date": "2018-03-22",
"user": {
"enabled": true,
"etag": "string",
"id": 0,
"name": "string"
},
"group": {
"id": 0,
"etag": "string",
"name": "string"
},
"activity_description": {
"id": 0,
"etag": "string",
"name": "string"
}
}
]
},
"folder": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Folder",
"locked": true,
"name": "string",
"root": true
},
"group": {
"id": 0,
"etag": "string",
"name": "string",
"type": "UserGroup"
},
"matter_budget": {
"id": 0,
"etag": "string",
"budget": 0,
"include_expenses": true,
"notification_threshold": 0,
"notify_users": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"originating_attorney": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"practice_area": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"name": "string",
"code": "string"
},
"responsible_attorney": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"statute_of_limitations": {
"id": 0,
"etag": "string",
"name": "string",
"status": "pending",
"description": "string",
"priority": "High",
"due_at": "2018-03-22",
"completed_at": "2018-03-22T20:30:34Z",
"notify_completion": true,
"statute_of_limitations": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"import": {
"id": 0,
"status": "not_started",
"source": "custom",
"importer_type": "contact",
"file_type": "csv",
"has_mappings": true,
"updated_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"byte_offset": 0,
"file_size": 0,
"error_file_available": true,
"record_count": 0,
"error_count": 0,
"fatal_error_message": "string",
"undone": true,
"stopped": true
},
"account_balances": [
{
"id": 0,
"balance": 0,
"type": "string",
"name": "string"
}
],
"custom_field_values": [
{
"id": "string",
"etag": "string",
"field_name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"field_type": "checkbox",
"field_required": true,
"field_displayed": true,
"field_display_order": 0,
"value": "string",
"picklist_option": "string"
}
],
"custom_field_set_associations": [
{
"id": 0,
"etag": "string",
"display_order": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"relationships": [
{
"id": 0,
"etag": "string",
"description": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"task_template_list_instances": [
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
]
}
Properties
allOf
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | Matter_base | false | No description |
and
| Name | Type | Required | Description |
|---|---|---|---|
| anonymous | object | false | No description |
| » client | Contact_base | false | No description |
| » contingency_fee | ContingencyFee_base | false | No description |
| » custom_rate | MatterCustomRate | false | No description |
| » folder | Folder_base | false | No description |
| » group | Group_base | false | No description |
| » matter_budget | MatterBudget_base | false | No description |
| » originating_attorney | User_base | false | No description |
| » practice_area | PracticeArea_base | false | No description |
| » responsible_attorney | User_base | false | No description |
| » statute_of_limitations | Task_base | false | No description |
| » user | User_base | false | No description |
| » import | ImportDetail_base | false | No description |
| » account_balances | [AccountBalance_base] | false | AccountBalance |
| » custom_field_values | [CustomFieldValue_base] | false | CustomFieldValue |
| » custom_field_set_associations | [CustomFieldSetAssociation_base] | false | CustomFieldSetAssociation |
| » relationships | [Relationship_base] | false | Relationship |
| » task_template_list_instances | [TaskTemplateListInstace_base] | false | TaskTemplateListInstace |
MatterShow
{
"data": {
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true,
"client": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"contingency_fee": {
"id": 0,
"etag": "string",
"show_contingency_award": true
},
"custom_rate": {
"type": "FlatRate",
"on_invoice": true,
"rates": [
{
"id": 0,
"rate": 0,
"award": 0,
"note": "string",
"date": "2018-03-22",
"user": {
"enabled": true,
"etag": "string",
"id": 0,
"name": "string"
},
"group": {
"id": 0,
"etag": "string",
"name": "string"
},
"activity_description": {
"id": 0,
"etag": "string",
"name": "string"
}
}
]
},
"folder": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Folder",
"locked": true,
"name": "string",
"root": true
},
"group": {
"id": 0,
"etag": "string",
"name": "string",
"type": "UserGroup"
},
"matter_budget": {
"id": 0,
"etag": "string",
"budget": 0,
"include_expenses": true,
"notification_threshold": 0,
"notify_users": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"originating_attorney": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"practice_area": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"name": "string",
"code": "string"
},
"responsible_attorney": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"statute_of_limitations": {
"id": 0,
"etag": "string",
"name": "string",
"status": "pending",
"description": "string",
"priority": "High",
"due_at": "2018-03-22",
"completed_at": "2018-03-22T20:30:34Z",
"notify_completion": true,
"statute_of_limitations": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"import": {
"id": 0,
"status": "not_started",
"source": "custom",
"importer_type": "contact",
"file_type": "csv",
"has_mappings": true,
"updated_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"byte_offset": 0,
"file_size": 0,
"error_file_available": true,
"record_count": 0,
"error_count": 0,
"fatal_error_message": "string",
"undone": true,
"stopped": true
},
"account_balances": [
{
"id": 0,
"balance": 0,
"type": "string",
"name": "string"
}
],
"custom_field_values": [
{
"id": "string",
"etag": "string",
"field_name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"field_type": "checkbox",
"field_required": true,
"field_displayed": true,
"field_display_order": 0,
"value": "string",
"picklist_option": "string"
}
],
"custom_field_set_associations": [
{
"id": 0,
"etag": "string",
"display_order": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"relationships": [
{
"id": 0,
"etag": "string",
"description": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"task_template_list_instances": [
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
]
}
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | Matter | true | No description |
MatterList
{
"data": [
{
"id": 0,
"etag": "string",
"number": 0,
"display_number": "string",
"custom_number": "string",
"description": "string",
"status": "Pending",
"location": "string",
"client_reference": "string",
"billable": true,
"maildrop_address": "string",
"billing_method": "flat",
"open_date": "2018-03-22",
"close_date": "2018-03-22",
"pending_date": "2018-03-22",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"shared": true,
"client": {
"id": 0,
"etag": "string",
"name": "string",
"first_name": "string",
"last_name": "string",
"type": "Company",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"clio_connect_email": "string",
"prefix": "string",
"title": "string",
"initials": "string",
"client_connect_user_id": 0,
"primary_email_address": "string",
"primary_phone_number": "string",
"ledes_client_id": "string"
},
"contingency_fee": {
"id": 0,
"etag": "string",
"show_contingency_award": true
},
"custom_rate": {
"type": "FlatRate",
"on_invoice": true,
"rates": [
{
"id": 0,
"rate": 0,
"award": 0,
"note": "string",
"date": "2018-03-22",
"user": {
"enabled": true,
"etag": "string",
"id": 0,
"name": "string"
},
"group": {
"id": 0,
"etag": "string",
"name": "string"
},
"activity_description": {
"id": 0,
"etag": "string",
"name": "string"
}
}
]
},
"folder": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"deleted_at": "2018-03-22T20:30:34Z",
"type": "Folder",
"locked": true,
"name": "string",
"root": true
},
"group": {
"id": 0,
"etag": "string",
"name": "string",
"type": "UserGroup"
},
"matter_budget": {
"id": 0,
"etag": "string",
"budget": 0,
"include_expenses": true,
"notification_threshold": 0,
"notify_users": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"originating_attorney": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"practice_area": {
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"name": "string",
"code": "string"
},
"responsible_attorney": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"statute_of_limitations": {
"id": 0,
"etag": "string",
"name": "string",
"status": "pending",
"description": "string",
"priority": "High",
"due_at": "2018-03-22",
"completed_at": "2018-03-22T20:30:34Z",
"notify_completion": true,
"statute_of_limitations": true,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"user": {
"account_owner": true,
"clio_connect": true,
"court_rules_default_attendee": true,
"default_calendar_id": 0,
"email": "string",
"enabled": true,
"etag": "string",
"first_name": "string",
"id": 0,
"initials": "string",
"last_name": "string",
"name": "string",
"phone_number": "string",
"rate": 0,
"subscription_type": "Attorney",
"time_zone": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
},
"import": {
"id": 0,
"status": "not_started",
"source": "custom",
"importer_type": "contact",
"file_type": "csv",
"has_mappings": true,
"updated_at": "2018-03-22T20:30:34Z",
"created_at": "2018-03-22T20:30:34Z",
"byte_offset": 0,
"file_size": 0,
"error_file_available": true,
"record_count": 0,
"error_count": 0,
"fatal_error_message": "string",
"undone": true,
"stopped": true
},
"account_balances": [
{
"id": 0,
"balance": 0,
"type": "string",
"name": "string"
}
],
"custom_field_values": [
{
"id": "string",
"etag": "string",
"field_name": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z",
"field_type": "checkbox",
"field_required": true,
"field_displayed": true,
"field_display_order": 0,
"value": "string",
"picklist_option": "string"
}
],
"custom_field_set_associations": [
{
"id": 0,
"etag": "string",
"display_order": 0,
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"relationships": [
{
"id": 0,
"etag": "string",
"description": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
],
"task_template_list_instances": [
{
"id": 0,
"etag": "string",
"created_at": "2018-03-22T20:30:34Z",
"updated_at": "2018-03-22T20:30:34Z"
}
]
}
]
}
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| data | [Matter] | true | Matter List Response |